Sat, 29 May 2021 18:33:03 +0200
Ported the plug-in to PyQt6 for eric7.
--- a/.hgignore Sat May 29 15:03:26 2021 +0200 +++ b/.hgignore Sat May 29 18:33:03 2021 +0200 @@ -1,11 +1,6 @@ +glob:.eric7project glob:.eric6project -glob:_eric6project -glob:.eric5project -glob:_eric5project -glob:.eric4project -glob:_eric4project glob:.ropeproject -glob:_ropeproject glob:.directory glob:**.pyc glob:**.pyo
--- a/ChangeLog Sat May 29 15:03:26 2021 +0200 +++ b/ChangeLog Sat May 29 18:33:03 2021 +0200 @@ -1,5 +1,10 @@ ChangeLog --------- +Version 1.0.0: +- first release of the eric7 variant + +************************************************************ + Version 6.2.0: - implemented some code simplifications - dropped support for Django < 2.0.0
--- a/PluginDjango.e4p Sat May 29 15:03:26 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,542 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE Project SYSTEM "Project-5.1.dtd"> -<!-- eric project file for project PluginDjango --> -<!-- Copyright (C) 2020 Detlev Offenbach, detlev@die-offenbachs.de --> -<Project version="5.1"> - <Language>en</Language> - <Hash>74ebac2e9316db59fdca32e146fa5ae695c66907</Hash> - <ProgLanguage mixed="0">Python3</ProgLanguage> - <ProjectType>E6Plugin</ProjectType> - <Description>Plugin implementing support for Django projects.</Description> - <Version>5.x</Version> - <Author>Detlev Offenbach</Author> - <Email>detlev@die-offenbachs.de</Email> - <TranslationPattern>ProjectDjango/i18n/django_%language%.ts</TranslationPattern> - <Eol index="1"/> - <Sources> - <Source>PluginProjectDjango.py</Source> - <Source>ProjectDjango/ConfigurationPage/DjangoPage.py</Source> - <Source>ProjectDjango/ConfigurationPage/__init__.py</Source> - <Source>ProjectDjango/DjangoCheckOptionsDialog.py</Source> - <Source>ProjectDjango/DjangoDialog.py</Source> - <Source>ProjectDjango/DjangoDiffsettingsDataDialog.py</Source> - <Source>ProjectDjango/DjangoDumpdataDataDialog.py</Source> - <Source>ProjectDjango/DjangoLoaddataDataDialog.py</Source> - <Source>ProjectDjango/DjangoMakeMigrationsDialog.py</Source> - <Source>ProjectDjango/DjangoMigrationSelectionDialog.py</Source> - <Source>ProjectDjango/DjangoMigrationsListDialog.py</Source> - <Source>ProjectDjango/DjangoRunTestServerDataDialog.py</Source> - <Source>ProjectDjango/DjangoSendTestEmailDataDialog.py</Source> - <Source>ProjectDjango/DjangoSquashMigrationSelectionDialog.py</Source> - <Source>ProjectDjango/DjangoTestDataDialog.py</Source> - <Source>ProjectDjango/Project.py</Source> - <Source>ProjectDjango/__init__.py</Source> - <Source>__init__.py</Source> - </Sources> - <Forms> - <Form>ProjectDjango/ConfigurationPage/DjangoPage.ui</Form> - <Form>ProjectDjango/DjangoCheckOptionsDialog.ui</Form> - <Form>ProjectDjango/DjangoDialog.ui</Form> - <Form>ProjectDjango/DjangoDiffsettingsDataDialog.ui</Form> - <Form>ProjectDjango/DjangoDumpdataDataDialog.ui</Form> - <Form>ProjectDjango/DjangoLoaddataDataDialog.ui</Form> - <Form>ProjectDjango/DjangoMakeMigrationsDialog.ui</Form> - <Form>ProjectDjango/DjangoMigrationSelectionDialog.ui</Form> - <Form>ProjectDjango/DjangoMigrationsListDialog.ui</Form> - <Form>ProjectDjango/DjangoRunTestServerDataDialog.ui</Form> - <Form>ProjectDjango/DjangoSendTestEmailDataDialog.ui</Form> - <Form>ProjectDjango/DjangoSquashMigrationSelectionDialog.ui</Form> - <Form>ProjectDjango/DjangoTestDataDialog.ui</Form> - </Forms> - <Translations> - <Translation>ProjectDjango/i18n/django_de.qm</Translation> - <Translation>ProjectDjango/i18n/django_de.ts</Translation> - <Translation>ProjectDjango/i18n/django_empty.ts</Translation> - <Translation>ProjectDjango/i18n/django_en.qm</Translation> - <Translation>ProjectDjango/i18n/django_en.ts</Translation> - <Translation>ProjectDjango/i18n/django_es.qm</Translation> - <Translation>ProjectDjango/i18n/django_es.ts</Translation> - <Translation>ProjectDjango/i18n/django_ru.qm</Translation> - <Translation>ProjectDjango/i18n/django_ru.ts</Translation> - <Translation>ProjectDjango/i18n/django_tr.ts</Translation> - </Translations> - <Others> - <Other>.hgignore</Other> - <Other>ChangeLog</Other> - <Other>PKGLIST</Other> - <Other>PluginDjango.e4p</Other> - <Other>PluginProjectDjango.zip</Other> - <Other>ProjectDjango/APIs</Other> - <Other>ProjectDjango/Documentation/LICENSE.GPL3</Other> - <Other>ProjectDjango/Documentation/help</Other> - <Other>ProjectDjango/Documentation/source</Other> - <Other>ProjectDjango/icons/applied-dark.svg</Other> - <Other>ProjectDjango/icons/applied-light.svg</Other> - <Other>ProjectDjango/icons/django-dark.svg</Other> - <Other>ProjectDjango/icons/django-light.svg</Other> - <Other>ProjectDjango/icons/django64-dark.svg</Other> - <Other>ProjectDjango/icons/django64-light.svg</Other> - </Others> - <MainScript>PluginProjectDjango.py</MainScript> - <Vcs> - <VcsType>Mercurial</VcsType> - <VcsOptions> - <dict> - <key> - <string>add</string> - </key> - <value> - <list> - <string></string> - </list> - </value> - <key> - <string>checkout</string> - </key> - <value> - <list> - <string></string> - </list> - </value> - <key> - <string>commit</string> - </key> - <value> - <list> - <string></string> - </list> - </value> - <key> - <string>diff</string> - </key> - <value> - <list> - <string></string> - </list> - </value> - <key> - <string>export</string> - </key> - <value> - <list> - <string></string> - </list> - </value> - <key> - <string>global</string> - </key> - <value> - <list> - <string></string> - </list> - </value> - <key> - <string>history</string> - </key> - <value> - <list> - <string></string> - </list> - </value> - <key> - <string>log</string> - </key> - <value> - <list> - <string></string> - </list> - </value> - <key> - <string>remove</string> - </key> - <value> - <list> - <string></string> - </list> - </value> - <key> - <string>status</string> - </key> - <value> - <list> - <string></string> - </list> - </value> - <key> - <string>tag</string> - </key> - <value> - <list> - <string></string> - </list> - </value> - <key> - <string>update</string> - </key> - <value> - <list> - <string></string> - </list> - </value> - </dict> - </VcsOptions> - </Vcs> - <FiletypeAssociations> - <FiletypeAssociation pattern="*.idl" type="INTERFACES"/> - <FiletypeAssociation pattern="*.py" type="SOURCES"/> - <FiletypeAssociation pattern="*.py3" type="SOURCES"/> - <FiletypeAssociation pattern="*.pyw" type="SOURCES"/> - <FiletypeAssociation pattern="*.pyw3" type="SOURCES"/> - <FiletypeAssociation pattern="*.qm" type="TRANSLATIONS"/> - <FiletypeAssociation pattern="*.qrc" type="RESOURCES"/> - <FiletypeAssociation pattern="*.ts" type="TRANSLATIONS"/> - <FiletypeAssociation pattern="*.ui" type="FORMS"/> - <FiletypeAssociation pattern="*.ui.h" type="FORMS"/> - <FiletypeAssociation pattern="Ui_*.py" type="__IGNORE__"/> - </FiletypeAssociations> - <Documentation> - <DocumentationParams> - <dict> - <key> - <string>ERIC4DOC</string> - </key> - <value> - <dict> - <key> - <string>cssFile</string> - </key> - <value> - <string>%PYTHON%/eric6/CSSs/default.css</string> - </value> - <key> - <string>ignoreDirectories</string> - </key> - <value> - <list> - <string>.eric5project</string> - <string>.ropeproject</string> - <string>.eric6project</string> - </list> - </value> - <key> - <string>ignoreFilePatterns</string> - </key> - <value> - <list> - <string>Ui_*</string> - </list> - </value> - <key> - <string>outputDirectory</string> - </key> - <value> - <string>ProjectDjango/Documentation/source</string> - </value> - <key> - <string>qtHelpEnabled</string> - </key> - <value> - <bool>False</bool> - </value> - <key> - <string>useRecursion</string> - </key> - <value> - <bool>True</bool> - </value> - </dict> - </value> - </dict> - </DocumentationParams> - </Documentation> - <Checkers> - <CheckersParams> - <dict> - <key> - <string>Pep8Checker</string> - </key> - <value> - <dict> - <key> - <string>AnnotationsChecker</string> - </key> - <value> - <dict> - <key> - <string>MaximumComplexity</string> - </key> - <value> - <int>3</int> - </value> - <key> - <string>MinimumCoverage</string> - </key> - <value> - <int>75</int> - </value> - </dict> - </value> - <key> - <string>BlankLines</string> - </key> - <value> - <tuple> - <int>2</int> - <int>1</int> - </tuple> - </value> - <key> - <string>BuiltinsChecker</string> - </key> - <value> - <dict> - <key> - <string>bytes</string> - </key> - <value> - <list> - <string>unicode</string> - </list> - </value> - <key> - <string>chr</string> - </key> - <value> - <list> - <string>unichr</string> - </list> - </value> - <key> - <string>str</string> - </key> - <value> - <list> - <string>unicode</string> - </list> - </value> - </dict> - </value> - <key> - <string>CommentedCodeChecker</string> - </key> - <value> - <dict> - <key> - <string>Aggressive</string> - </key> - <value> - <bool>False</bool> - </value> - </dict> - </value> - <key> - <string>CopyrightAuthor</string> - </key> - <value> - <string></string> - </value> - <key> - <string>CopyrightMinFileSize</string> - </key> - <value> - <int>0</int> - </value> - <key> - <string>DocstringType</string> - </key> - <value> - <string>eric</string> - </value> - <key> - <string>EnabledCheckerCategories</string> - </key> - <value> - <string>C, D, E, M, N, S, W</string> - </value> - <key> - <string>ExcludeFiles</string> - </key> - <value> - <string>*/Ui_*.py, */*_rc.py</string> - </value> - <key> - <string>ExcludeMessages</string> - </key> - <value> - <string>C101,E265,E266,E305,E402,M201,M301,M302,M303,M304,M305,M306,M307,M308,M311,M312,M313,M314,M315,M321,M701,M702,M811,M834,N802,N803,N807,N808,N821,W293,W504</string> - </value> - <key> - <string>FixCodes</string> - </key> - <value> - <string></string> - </value> - <key> - <string>FixIssues</string> - </key> - <value> - <bool>False</bool> - </value> - <key> - <string>FutureChecker</string> - </key> - <value> - <string></string> - </value> - <key> - <string>HangClosing</string> - </key> - <value> - <bool>False</bool> - </value> - <key> - <string>IncludeMessages</string> - </key> - <value> - <string></string> - </value> - <key> - <string>LineComplexity</string> - </key> - <value> - <int>20</int> - </value> - <key> - <string>LineComplexityScore</string> - </key> - <value> - <int>10</int> - </value> - <key> - <string>MaxCodeComplexity</string> - </key> - <value> - <int>10</int> - </value> - <key> - <string>MaxDocLineLength</string> - </key> - <value> - <int>79</int> - </value> - <key> - <string>MaxLineLength</string> - </key> - <value> - <int>79</int> - </value> - <key> - <string>NoFixCodes</string> - </key> - <value> - <string>E501</string> - </value> - <key> - <string>RepeatMessages</string> - </key> - <value> - <bool>True</bool> - </value> - <key> - <string>SecurityChecker</string> - </key> - <value> - <dict> - <key> - <string>CheckTypedException</string> - </key> - <value> - <bool>False</bool> - </value> - <key> - <string>HardcodedTmpDirectories</string> - </key> - <value> - <list> - <string>/tmp</string> - <string>/var/tmp</string> - <string>/dev/shm</string> - <string>~/tmp</string> - </list> - </value> - <key> - <string>InsecureHashes</string> - </key> - <value> - <list> - <string>md4</string> - <string>md5</string> - <string>sha</string> - <string>sha1</string> - </list> - </value> - <key> - <string>InsecureSslProtocolVersions</string> - </key> - <value> - <list> - <string>PROTOCOL_SSLv2</string> - <string>SSLv2_METHOD</string> - <string>SSLv23_METHOD</string> - <string>PROTOCOL_SSLv3</string> - <string>PROTOCOL_TLSv1</string> - <string>SSLv3_METHOD</string> - <string>TLSv1_METHOD</string> - </list> - </value> - <key> - <string>WeakKeySizeDsaHigh</string> - </key> - <value> - <string>1024</string> - </value> - <key> - <string>WeakKeySizeDsaMedium</string> - </key> - <value> - <string>2048</string> - </value> - <key> - <string>WeakKeySizeEcHigh</string> - </key> - <value> - <string>160</string> - </value> - <key> - <string>WeakKeySizeEcMedium</string> - </key> - <value> - <string>224</string> - </value> - <key> - <string>WeakKeySizeRsaHigh</string> - </key> - <value> - <string>1024</string> - </value> - <key> - <string>WeakKeySizeRsaMedium</string> - </key> - <value> - <string>2048</string> - </value> - </dict> - </value> - <key> - <string>ShowIgnored</string> - </key> - <value> - <bool>False</bool> - </value> - <key> - <string>ValidEncodings</string> - </key> - <value> - <string>latin-1, utf-8</string> - </value> - </dict> - </value> - </dict> - </CheckersParams> - </Checkers> -</Project>
--- a/PluginDjango.epj Sat May 29 15:03:26 2021 +0200 +++ b/PluginDjango.epj Sat May 29 18:33:03 2021 +0200 @@ -113,11 +113,11 @@ "DOCSTRING": "", "DOCUMENTATIONPARMS": { "ERIC4DOC": { - "cssFile": "%PYTHON%/eric6/CSSs/default.css", + "cssFile": "%PYTHON%/eric7/CSSs/default.css", "ignoreDirectories": [ - ".eric5project", ".ropeproject", - ".eric6project" + ".eric6project", + ".eric7project" ], "ignoreFilePatterns": [ "Ui_*" @@ -130,17 +130,25 @@ "EMAIL": "detlev@die-offenbachs.de", "EOL": 1, "FILETYPES": { + "*.epj": "OTHERS", "*.idl": "INTERFACES", + "*.md": "OTHERS", + "*.proto": "PROTOCOLS", "*.py": "SOURCES", "*.py3": "SOURCES", "*.pyw": "SOURCES", "*.pyw3": "SOURCES", "*.qm": "TRANSLATIONS", - "*.qrc": "RESOURCES", + "*.rst": "OTHERS", "*.ts": "TRANSLATIONS", + "*.txt": "OTHERS", "*.ui": "FORMS", - "*.ui.h": "FORMS", - "Ui_*.py": "__IGNORE__" + "GNUmakefile": "OTHERS", + "Makefile": "OTHERS", + "README": "OTHERS", + "README.*": "OTHERS", + "Ui_*.py": "__IGNORE__", + "makefile": "OTHERS" }, "FORMS": [ "ProjectDjango/ConfigurationPage/DjangoPage.ui", @@ -174,12 +182,11 @@ "MakeTarget": "", "MakeTestOnly": true }, - "MIXEDLANGUAGE": 0, + "MIXEDLANGUAGE": false, "OTHERS": [ ".hgignore", "ChangeLog", "PKGLIST", - "PluginDjango.e4p", "PluginProjectDjango.zip", "ProjectDjango/APIs", "ProjectDjango/Documentation/LICENSE.GPL3", @@ -196,7 +203,7 @@ "OTHERTOOLSPARMS": {}, "PACKAGERSPARMS": {}, "PROGLANGUAGE": "Python3", - "PROJECTTYPE": "E6Plugin", + "PROJECTTYPE": "E7Plugin", "PROJECTTYPESPECIFICDATA": {}, "PROTOCOLS": [], "RCCPARAMS": { @@ -289,6 +296,6 @@ ] }, "VCSOTHERDATA": {}, - "VERSION": "5.x" + "VERSION": "" } } \ No newline at end of file
--- a/PluginProjectDjango.py Sat May 29 15:03:26 2021 +0200 +++ b/PluginProjectDjango.py Sat May 29 18:33:03 2021 +0200 @@ -11,9 +11,9 @@ import glob import fnmatch -from PyQt5.QtCore import QCoreApplication, QObject, QTranslator +from PyQt6.QtCore import QCoreApplication, QObject, QTranslator -from E5Gui.E5Application import e5App +from EricWidgets.EricApplication import ericApp import Preferences @@ -26,7 +26,7 @@ author = "Detlev Offenbach <detlev@die-offenbachs.de>" autoactivate = True deactivateable = True -version = "6.2.0" +version = "1.0.0" className = "ProjectDjangoPlugin" packageName = "ProjectDjango" shortDescription = "Project support for Django projects." @@ -46,8 +46,10 @@ """ Module function to return the API files made available by this plugin. - @param language language to get APIs for (string) - @return list of API filenames (list of string) + @param language language to get APIs for + @type str + @return list of API filenames + @rtype list of str """ if language in ["Python3"]: apisDir = os.path.join(os.path.dirname(__file__), @@ -63,7 +65,9 @@ Module function to create the Django configuration page. @param configDlg reference to the configuration dialog + @type ConfigurationWidget @return reference to the configuration page + @rtype DjangoPage """ global djangoPluginObject from ProjectDjango.ConfigurationPage.DjangoPage import DjangoPage @@ -76,14 +80,9 @@ Module function returning data as required by the configuration dialog. @return dictionary containing the relevant data + @rtype dict """ - try: - usesDarkPalette = e5App().usesDarkPalette() - except AttributeError: - from PyQt5.QtGui import QPalette - palette = e5App().palette() - lightness = palette.color(QPalette.Window).lightness() - usesDarkPalette = lightness <= 128 + usesDarkPalette = ericApp().usesDarkPalette() iconSuffix = "dark" if usesDarkPalette else "light" return { @@ -119,7 +118,8 @@ """ Constructor - @param ui reference to the user interface object (UI.UserInterface) + @param ui reference to the user interface object + @type UserInterface """ QObject.__init__(self, ui) self.__ui = ui @@ -128,9 +128,6 @@ self.__defaults = { "VirtualEnvironmentNamePy3": "", - # these are obsolete and kept for use with eric <18.07 - "VirtualEnvironmentPy3": "", - "Python3ConsoleType": "ipython", "ServerAddress": "", @@ -174,7 +171,7 @@ self.__mainAct = None self.__separatorAct = None - self.__e5project = e5App().getObject("Project") + self.__ericProject = ericApp().getObject("Project") self.__supportedVariants = [] @@ -182,30 +179,25 @@ """ Public method to activate this plugin. - @return tuple of None and activation status (boolean) + @return tuple of None and activation status + @rtype bool """ global djangoPluginObject djangoPluginObject = self - try: - usesDarkPalette = e5App().usesDarkPalette() - except AttributeError: - from PyQt5.QtGui import QPalette - palette = e5App().palette() - lightness = palette.color(QPalette.Window).lightness() - usesDarkPalette = lightness <= 128 + usesDarkPalette = ericApp().usesDarkPalette() iconSuffix = "dark" if usesDarkPalette else "light" self.__object = Project(self, iconSuffix, self.__ui) self.__object.initActions() - e5App().registerPluginObject("ProjectDjango", self.__object) + ericApp().registerPluginObject("ProjectDjango", self.__object) self.__mainMenu = self.__object.initMenu() self.__supportedVariants = self.__object.supportedPythonVariants() if self.__supportedVariants: - self.__e5project.registerProjectType( + self.__ericProject.registerProjectType( "Django", self.tr("Django"), self.fileTypesCallback, lexerAssociationCallback=self.lexerAssociationCallback, @@ -222,27 +214,27 @@ TranslationsBrowserFlag | OthersBrowserFlag, ) - if self.__e5project.isOpen(): + if self.__ericProject.isOpen(): self.__projectOpened() self.__object.projectOpenedHooks() - e5App().getObject("Project").projectOpened.connect( + ericApp().getObject("Project").projectOpened.connect( self.__projectOpened) - e5App().getObject("Project").projectClosed.connect( + ericApp().getObject("Project").projectClosed.connect( self.__projectClosed) - e5App().getObject("Project").newProject.connect( + ericApp().getObject("Project").newProject.connect( self.__projectOpened) - e5App().getObject("Project").projectOpenedHooks.connect( + ericApp().getObject("Project").projectOpenedHooks.connect( self.__object.projectOpenedHooks) - e5App().getObject("Project").projectClosedHooks.connect( + ericApp().getObject("Project").projectClosedHooks.connect( self.__object.projectClosedHooks) - e5App().getObject("Project").newProjectHooks.connect( + ericApp().getObject("Project").newProjectHooks.connect( self.__object.projectOpenedHooks) - e5App().getObject("Project").projectAboutToBeCreated.connect( + ericApp().getObject("Project").projectAboutToBeCreated.connect( self.__object.startProjectOrApplication) - e5App().getObject("Project").newProject.connect( + ericApp().getObject("Project").newProject.connect( self.__object.newProjectCreated) return None, True @@ -251,28 +243,28 @@ """ Public method to deactivate this plugin. """ - e5App().unregisterPluginObject("ProjectDjango") + ericApp().unregisterPluginObject("ProjectDjango") - e5App().getObject("Project").projectOpened.disconnect( + ericApp().getObject("Project").projectOpened.disconnect( self.__projectOpened) - e5App().getObject("Project").projectClosed.disconnect( + ericApp().getObject("Project").projectClosed.disconnect( self.__projectClosed) - e5App().getObject("Project").newProject.disconnect( + ericApp().getObject("Project").newProject.disconnect( self.__projectOpened) - e5App().getObject("Project").projectOpenedHooks.disconnect( + ericApp().getObject("Project").projectOpenedHooks.disconnect( self.__object.projectOpenedHooks) - e5App().getObject("Project").projectClosedHooks.disconnect( + ericApp().getObject("Project").projectClosedHooks.disconnect( self.__object.projectClosedHooks) - e5App().getObject("Project").newProjectHooks.disconnect( + ericApp().getObject("Project").newProjectHooks.disconnect( self.__object.projectOpenedHooks) - e5App().getObject("Project").projectAboutToBeCreated.disconnect( + ericApp().getObject("Project").projectAboutToBeCreated.disconnect( self.__object.startProjectOrApplication) - e5App().getObject("Project").newProject.disconnect( + ericApp().getObject("Project").newProject.disconnect( self.__object.newProjectCreated) - self.__e5project.unregisterProjectType("Django") + self.__ericProject.unregisterProjectType("Django") self.__object.projectClosedHooks() self.__projectClosed() @@ -293,7 +285,7 @@ loaded = translator.load(translation, locale_dir) if loaded: self.__translator = translator - e5App().installTranslator(self.__translator) + ericApp().installTranslator(self.__translator) else: print("Warning: translation file '{0}' could not be" " loaded.".format(translation)) @@ -303,20 +295,13 @@ """ Private slot to handle the projectOpened signal. """ - if self.__e5project.getProjectType() == "Django": + if self.__ericProject.getProjectType() == "Django": projectToolsMenu = self.__ui.getMenu("project_tools") - if projectToolsMenu is not None: - insertBeforeAct = projectToolsMenu.actions()[0] - self.__mainAct = projectToolsMenu.insertMenu( - insertBeforeAct, self.__mainMenu) - self.__separatorAct = projectToolsMenu.insertSeparator( - insertBeforeAct) - else: - projectAct = self.__ui.getMenuBarAction("project") - actions = self.__ui.menuBar().actions() - insertBeforeAct = actions[actions.index(projectAct) + 1] - self.__mainAct = self.__ui.menuBar().insertMenu( - insertBeforeAct, self.__mainMenu) + insertBeforeAct = projectToolsMenu.actions()[0] + self.__mainAct = projectToolsMenu.insertMenu( + insertBeforeAct, self.__mainMenu) + self.__separatorAct = projectToolsMenu.insertSeparator( + insertBeforeAct) def __projectClosed(self): """ @@ -324,14 +309,10 @@ """ if self.__mainAct is not None: projectToolsMenu = self.__ui.getMenu("project_tools") - if projectToolsMenu is not None: - projectToolsMenu.removeAction(self.__separatorAct) - projectToolsMenu.removeAction(self.__mainAct) - self.__mainAct = None - self.__separatorAct = None - else: - self.__ui.menuBar().removeAction(self.__mainAct) - self.__mainAct = None + projectToolsMenu.removeAction(self.__separatorAct) + projectToolsMenu.removeAction(self.__mainAct) + self.__mainAct = None + self.__separatorAct = None self.__object.projectClosed() def fileTypesCallback(self): @@ -339,6 +320,7 @@ Public method get the filetype associations of the Django project type. @return dictionary with file type associations + @rtype dict """ fileTypes = ( { @@ -350,7 +332,7 @@ "*.mo": "TRANSLATIONS", "*.py": "SOURCES", } - if self.__e5project.getProjectType() == "Django" else + if self.__ericProject.getProjectType() == "Django" else {} ) return fileTypes @@ -360,9 +342,11 @@ Public method to get the lexer association of the Django project type for a file. - @param filename name of the file (string) - @return name of the lexer (string) (Pygments lexers are prefixed with + @param filename name of the file + @type str + @return name of the lexer (Pygments lexers are prefixed with 'Pygments|') + @rtype str """ for pattern, language in self.lexerAssociations.items(): if fnmatch.fnmatch(filename, pattern): @@ -375,8 +359,10 @@ Public method to determine the filename of a compiled translation file given the translation source file. - @param filename name of the translation source file (string) - @return name of the binary translation file (string) + @param filename name of the translation source file + @type str + @return name of the binary translation file + @rtype str """ if filename.endswith(".po"): filename = filename.replace(".po", ".mo") @@ -387,7 +373,9 @@ Public method to retrieve the various settings. @param key the key of the value to get - @return the requested setting + @type str + @return value of the requested setting + @rtype Any """ if key in ["RecentNumberApps", "RecentNumberTestData"]: return int(Preferences.Prefs.settings.value( @@ -405,13 +393,15 @@ """ Public method to store the various settings. - @param key the key of the setting to be set (string) - @param value the value to be set + @param key the key of the setting to be set + @type str + @param value value to be set + @type Any """ Preferences.Prefs.settings.setValue( self.PreferencesKey + "/" + key, value) - if key in ["VirtualEnvironmentPy3", "VirtualEnvironmentNamePy3"]: + if key in ["VirtualEnvironmentNamePy3"]: self.__reregisterProjectType() elif key == "TranslationsEditor" and self.__object: self.__object.registerOpenHook() @@ -423,12 +413,12 @@ supportedVariants = self.__object.supportedPythonVariants() if supportedVariants != self.__supportedVariants: # step 1: unregister - self.__e5project.unregisterProjectType("Django") + self.__ericProject.unregisterProjectType("Django") # step 2: register again with new language settings self.__supportedVariants = supportedVariants if self.__supportedVariants: - self.__e5project.registerProjectType( + self.__ericProject.registerProjectType( "Django", self.tr("Django"), self.fileTypesCallback, lexerAssociationCallback=self.lexerAssociationCallback,
--- a/ProjectDjango/ConfigurationPage/DjangoPage.py Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/ConfigurationPage/DjangoPage.py Sat May 29 18:33:03 2021 +0200 @@ -7,11 +7,8 @@ Module implementing the Django configuration page. """ -from PyQt5.QtCore import pyqtSlot - -from E5Gui import E5FileDialog -from E5Gui.E5Completers import E5DirCompleter, E5FileCompleter -from E5Gui.E5Application import e5App +from EricWidgets.EricApplication import ericApp +from EricWidgets.EricPathPicker import EricPathPickerModes from Preferences.ConfigurationPages.ConfigurationPageBase import ( ConfigurationPageBase @@ -20,9 +17,6 @@ from Globals import isWindowsPlatform, isMacPlatform -import Utilities -import UI.PixmapCache - class DjangoPage(ConfigurationPageBase, Ui_DjangoPage): """ @@ -38,11 +32,8 @@ self.setupUi(self) self.setObjectName("DjangoPage") - self.virtualEnvPy3Button.setIcon(UI.PixmapCache.getIcon("open")) - self.translationsButton.setIcon(UI.PixmapCache.getIcon("open")) - - self.__virtualEnvPy3Completer = E5DirCompleter(self.virtualEnvPy3Edit) - self.__translationsCompleter = E5FileCompleter(self.translationsEdit) + self.translationsPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) + self.translationsPicker.setFilters(self.tr("All Files (*)")) self.__plugin = plugin @@ -54,7 +45,7 @@ consoleList.append("/opt/X11/bin/xterm -e") else: consoleList.append("@konsole --workdir . -e") - # KDE4/5 konsole spawns + # KDE 5 konsole spawns consoleList.append("gnome-terminal -e") consoleList.append("mate-terminal -e") consoleList.append("xfce4-terminal -e") @@ -68,7 +59,7 @@ consoleNoCloseList.append("/opt/X11/bin/xterm -hold -e") else: consoleNoCloseList.append("@konsole --noclose --workdir . -e") - # KDE4/5 konsole spawns + # KDE 5 konsole spawns consoleNoCloseList.append("gnome-terminal --profile=<noclose> -e") consoleNoCloseList.append("mate-terminal --profile=<noclose> -e") consoleNoCloseList.append("xfce4-terminal --hold -e") @@ -81,21 +72,10 @@ self.py3ShellCombo.addItem(self.tr("IPython"), "ipython") self.py3ShellCombo.addItem(self.tr("bpython"), "bpython") - try: - venvManager = e5App().getObject("VirtualEnvManager") - - self.py3VenvNameComboBox.addItems( - [""] + sorted(venvManager.getVirtualenvNames())) - - self.djangoVirtualEnvPy3Group.hide() - - self.__hasVirtualEnvironmentManager = True - except KeyError: - venvManager = None - - self.djangoVirtualEnvironmentPy3Group.hide() - - self.__hasVirtualEnvironmentManager = False + venvManager = ericApp().getObject("VirtualEnvManager") + + self.py3VenvNameComboBox.addItems( + [""] + sorted(venvManager.getVirtualenvNames())) # set initial values self.consoleCommandCombo.setEditText( @@ -116,21 +96,18 @@ self.appsRecentSpinBox.setValue( self.__plugin.getPreferences("RecentNumberApps")) - if venvManager: - venvName = self.__plugin.getPreferences( - "VirtualEnvironmentNamePy3") - if venvName: - index = self.py3VenvNameComboBox.findText(venvName) - if index < 0: - index = 0 - self.py3VenvNameComboBox.setCurrentIndex(index) - else: - self.virtualEnvPy3Edit.setText( - self.__plugin.getPreferences("VirtualEnvironmentPy3")) + venvName = self.__plugin.getPreferences( + "VirtualEnvironmentNamePy3") + if venvName: + index = self.py3VenvNameComboBox.findText(venvName) + if index < 0: + index = 0 + self.py3VenvNameComboBox.setCurrentIndex(index) + self.py3ShellCombo.setCurrentIndex(self.py3ShellCombo.findData( self.__plugin.getPreferences("Python3ConsoleType"))) - self.translationsEdit.setText( + self.translationsPicker.setText( self.__plugin.getPreferences("TranslationsEditor")) self.fuzzyTranslationsCheckBox.setChecked( self.__plugin.getPreferences("FuzzyTranslations")) @@ -159,51 +136,14 @@ self.__plugin.setPreferences( "RecentNumberApps", self.appsRecentSpinBox.value()) - if self.__hasVirtualEnvironmentManager: - self.__plugin.setPreferences( - "VirtualEnvironmentNamePy3", - self.py3VenvNameComboBox.currentText()) - else: - self.__plugin.setPreferences( - "VirtualEnvironmentPy3", self.virtualEnvPy3Edit.text()) + self.__plugin.setPreferences( + "VirtualEnvironmentNamePy3", + self.py3VenvNameComboBox.currentText()) self.__plugin.setPreferences( "Python3ConsoleType", self.py3ShellCombo.itemData(self.py3ShellCombo.currentIndex())) self.__plugin.setPreferences( - "TranslationsEditor", self.translationsEdit.text()) + "TranslationsEditor", self.translationsPicker.text()) self.__plugin.setPreferences( "FuzzyTranslations", self.fuzzyTranslationsCheckBox.isChecked()) - - @pyqtSlot() - def on_virtualEnvPy3Button_clicked(self): - """ - Private slot to select the virtual environment for Python 3 via a - directory selection dialog. - """ - vDir = self.virtualEnvPy3Edit.text() - if not vDir: - vDir = Utilities.getHomeDir() - virtualEnv = E5FileDialog.getExistingDirectory( - self, - self.tr("Select Virtual Environment for Python 3"), - vDir, - E5FileDialog.Options(E5FileDialog.Option(0))) - - if virtualEnv: - self.virtualEnvPy3Edit.setText( - Utilities.toNativeSeparators(virtualEnv)) - - @pyqtSlot() - def on_translationsButton_clicked(self): - """ - Private slot to select the translations editor via a file selection - dialog. - """ - editor = E5FileDialog.getOpenFileName( - self, - self.tr("Translations Editor"), - self.translationsEdit.text(), - self.tr("All Files (*)")) - if editor: - self.translationsEdit.setText(Utilities.toNativeSeparators(editor))
--- a/ProjectDjango/ConfigurationPage/DjangoPage.ui Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/ConfigurationPage/DjangoPage.ui Sat May 29 18:33:03 2021 +0200 @@ -7,10 +7,10 @@ <x>0</x> <y>0</y> <width>536</width> - <height>1201</height> + <height>1038</height> </rect> </property> - <layout class="QVBoxLayout" name="verticalLayout_7"> + <layout class="QVBoxLayout" name="verticalLayout_6"> <item> <widget class="QLabel" name="headerLabel"> <property name="text"> @@ -229,41 +229,6 @@ </property> <layout class="QVBoxLayout" name="verticalLayout_3"> <item> - <widget class="QGroupBox" name="djangoVirtualEnvPy3Group"> - <property name="title"> - <string>Django Virtual Environment</string> - </property> - <layout class="QGridLayout" name="gridLayout_4"> - <item row="0" column="0" colspan="2"> - <widget class="QLabel" name="label_6"> - <property name="minimumSize"> - <size> - <width>0</width> - <height>40</height> - </size> - </property> - <property name="text"> - <string>Enter the path of the Django virtual environment. Leave empty to not use a virtual environment setup.</string> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLineEdit" name="virtualEnvPy3Edit"/> - </item> - <item row="1" column="1"> - <widget class="QToolButton" name="virtualEnvPy3Button"> - <property name="toolTip"> - <string>Select the virtual environment directory via a selection dialog</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - <item> <widget class="QGroupBox" name="djangoVirtualEnvironmentPy3Group"> <property name="title"> <string>Django Virtual Environment</string> @@ -317,14 +282,14 @@ <property name="title"> <string>Translations</string> </property> - <layout class="QVBoxLayout" name="verticalLayout"> + <layout class="QVBoxLayout" name="verticalLayout_4"> <item> <widget class="QGroupBox" name="TranslationsGroup"> <property name="title"> <string>Translations Editor</string> </property> - <layout class="QGridLayout" name="gridLayout_3"> - <item row="0" column="0" colspan="2"> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> <widget class="QLabel" name="label_8"> <property name="minimumSize"> <size> @@ -340,13 +305,10 @@ </property> </widget> </item> - <item row="1" column="0"> - <widget class="QLineEdit" name="translationsEdit"/> - </item> - <item row="1" column="1"> - <widget class="QToolButton" name="translationsButton"> - <property name="toolTip"> - <string>Select the translations editor via a file selection dialog</string> + <item> + <widget class="EricPathPicker" name="translationsPicker" native="true"> + <property name="focusPolicy"> + <enum>Qt::WheelFocus</enum> </property> </widget> </item> @@ -381,6 +343,14 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>EricPathPicker</class> + <extends>QWidget</extends> + <header>EricWidgets/EricPathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> <tabstop>consoleCommandCombo</tabstop> <tabstop>consoleCommandNoCloseCombo</tabstop> @@ -389,12 +359,9 @@ <tabstop>threadingCheckBox</tabstop> <tabstop>externalBrowserCheckBox</tabstop> <tabstop>appsRecentSpinBox</tabstop> - <tabstop>virtualEnvPy3Edit</tabstop> - <tabstop>virtualEnvPy3Button</tabstop> <tabstop>py3VenvNameComboBox</tabstop> <tabstop>py3ShellCombo</tabstop> - <tabstop>translationsEdit</tabstop> - <tabstop>translationsButton</tabstop> + <tabstop>translationsPicker</tabstop> <tabstop>fuzzyTranslationsCheckBox</tabstop> </tabstops> <resources/>
--- a/ProjectDjango/DjangoCheckOptionsDialog.py Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoCheckOptionsDialog.py Sat May 29 18:33:03 2021 +0200 @@ -9,10 +9,10 @@ import os -from PyQt5.QtCore import pyqtSlot, Qt, QProcess -from PyQt5.QtWidgets import QDialog +from PyQt6.QtCore import pyqtSlot, Qt, QProcess +from PyQt6.QtWidgets import QDialog -from E5Gui import E5FileDialog +from EricWidgets import EricFileDialog from .Ui_DjangoCheckOptionsDialog import Ui_DjangoCheckOptionsDialog @@ -72,7 +72,7 @@ path = self.__moduleToPath(self.settingsFileEdit.text()) if not path: path = self.__path - settingsFile = E5FileDialog.getOpenFileName( + settingsFile = EricFileDialog.getOpenFileName( self, self.tr("Select settings file"), path, @@ -154,7 +154,8 @@ # step 4: re-select tags for tag in selectedTags: - items = self.tagsList.findItems(tag, Qt.MatchCaseSensitive) + items = self.tagsList.findItems( + tag, Qt.MatchFlag.MatchCaseSensitive) if items: items[0].setSelected(True)
--- a/ProjectDjango/DjangoCheckOptionsDialog.ui Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoCheckOptionsDialog.ui Sat May 29 18:33:03 2021 +0200 @@ -61,7 +61,7 @@ </widget> </item> <item> - <widget class="E5ClearableComboBox" name="appsComboBox"> + <widget class="QComboBox" name="appsComboBox"> <property name="editable"> <bool>true</bool> </property> @@ -73,11 +73,17 @@ <string>Settings module for deployment mode</string> </property> <layout class="QHBoxLayout" name="horizontalLayout"> + <property name="spacing"> + <number>0</number> + </property> <item> - <widget class="E5ClearableLineEdit" name="settingsFileEdit"> + <widget class="QLineEdit" name="settingsFileEdit"> <property name="toolTip"> <string>Enter the module name of the deployment settings</string> </property> + <property name="clearButtonEnabled"> + <bool>true</bool> + </property> </widget> </item> <item> @@ -102,18 +108,6 @@ </item> </layout> </widget> - <customwidgets> - <customwidget> - <class>E5ClearableLineEdit</class> - <extends>QLineEdit</extends> - <header>E5Gui/E5LineEdit.h</header> - </customwidget> - <customwidget> - <class>E5ClearableComboBox</class> - <extends>QComboBox</extends> - <header>E5Gui/E5ComboBox.h</header> - </customwidget> - </customwidgets> <resources/> <connections> <connection>
--- a/ProjectDjango/DjangoDialog.py Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoDialog.py Sat May 29 18:33:03 2021 +0200 @@ -9,12 +9,12 @@ import os -from PyQt5.QtCore import pyqtSlot, QProcess, QTimer, QFileInfo -from PyQt5.QtWidgets import ( +from PyQt6.QtCore import pyqtSlot, QProcess, QTimer, QFileInfo +from PyQt6.QtWidgets import ( QDialog, QDialogButtonBox, QAbstractButton, QTextEdit, QLineEdit ) -from E5Gui import E5MessageBox, E5FileDialog +from EricWidgets import EricMessageBox, EricFileDialog from .Ui_DjangoDialog import Ui_DjangoDialog @@ -38,25 +38,35 @@ """ Constructor - @param text text to be shown by the label (string) - @keyparam fixed flag indicating a fixed font should be used (boolean) - @keyparam linewrap flag indicating to wrap long lines (boolean) - @keyparam msgSuccess optional string to show upon successful execution - (string) - @keyparam msgError optional string to show upon unsuccessful execution - (string) - @keyparam saveFilters filename filter string (string) - @keyparam showInput flag indicating to show the input widgets (bool) - @keyparam parent parent widget (QWidget) + @param text text to be shown by the label + @type str + @param fixed flag indicating a fixed font should be used + @type bool + @param linewrap flag indicating to wrap long lines + @type bool + @param msgSuccess optional string to show upon successful execution + @type str + @param msgError optional string to show upon unsuccessful execution + @type str + @param saveFilters filename filter string + @type str + @param showInput flag indicating to show the input widgets + @type bool + @param parent parent widget + @type QWidget """ super().__init__(parent) self.setupUi(self) - self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) - self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) - self.buttonBox.button(QDialogButtonBox.Save).setEnabled(False) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Close).setEnabled(False) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Cancel).setDefault(True) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Save).setEnabled(False) if saveFilters is None: - self.buttonBox.button(QDialogButtonBox.Save).setHidden(True) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Save).setHidden(True) self.ioEncoding = Preferences.getSystem("IOEncoding") @@ -79,20 +89,27 @@ self.resultbox.setFontFamily("Monospace") if not linewrap: - self.resultbox.setLineWrapMode(QTextEdit.NoWrap) + self.resultbox.setLineWrapMode(QTextEdit.LineWrapMode.NoWrap) @pyqtSlot(QAbstractButton) def on_buttonBox_clicked(self, button): """ Private slot called by a button of the button box clicked. - @param button button that was clicked (QAbstractButton) + @param button button that was clicked + @type QAbstractButton """ - if button == self.buttonBox.button(QDialogButtonBox.Close): + if button == self.buttonBox.button( + QDialogButtonBox.StandardButton.Close + ): self.close() - elif button == self.buttonBox.button(QDialogButtonBox.Cancel): + elif button == self.buttonBox.button( + QDialogButtonBox.StandardButton.Cancel + ): self.__finish() - elif button == self.buttonBox.button(QDialogButtonBox.Save): + elif button == self.buttonBox.button( + QDialogButtonBox.StandardButton.Save + ): self.__saveData() def __finish(self): @@ -102,16 +119,20 @@ """ if ( self.proc is not None and - self.proc.state() != QProcess.NotRunning + self.proc.state() != QProcess.ProcessState.NotRunning ): self.proc.terminate() QTimer.singleShot(2000, self.proc.kill) self.proc.waitForFinished(3000) - self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) - self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) - self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) - self.buttonBox.button(QDialogButtonBox.Save).setEnabled(True) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Close).setEnabled(True) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Cancel).setEnabled(False) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Close).setDefault(True) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Save).setEnabled(True) self.inputGroup.setEnabled(False) self.inputGroup.hide() @@ -128,10 +149,15 @@ """ Private slot connected to the finished signal. - @param exitCode exit code of the process (integer) - @param exitStatus exit status of the process (QProcess.ExitStatus) + @param exitCode exit code of the process + @type int + @param exitStatus exit status of the process + @type QProcess.ExitStatus """ - self.normal = (exitStatus == QProcess.NormalExit) and (exitCode == 0) + self.normal = ( + exitStatus == QProcess.ExitStatus.NormalExit and + exitCode == 0 + ) self.__finish() if self.normal and self.msgSuccess: @@ -146,13 +172,16 @@ """ Public slot used to start the process. - @param args list of arguments for the process (list of strings) - @param workingDir working directory for the process (string) + @param args list of arguments for the process + @type list of str + @param workingDir working directory for the process + @type str @param showCommand flag indicating to show the command executed - (boolean) + @type bool @param mergedOutput flag indicating to merge the output of the process - (boolean) - @return flag indicating a successful start of the process (boolean) + @type bool + @return flag indicating a successful start of the process + @rtype bool """ self.errorGroup.hide() @@ -160,7 +189,8 @@ self.proc = QProcess() if mergedOutput: - self.proc.setProcessChannelMode(QProcess.MergedChannels) + self.proc.setProcessChannelMode( + QProcess.ProcessChannelMode.MergedChannels) if showCommand: self.resultbox.append(' '.join(args)) @@ -183,7 +213,7 @@ if not procStarted: self.buttonBox.setFocus() self.inputGroup.setEnabled(False) - E5MessageBox.critical( + EricMessageBox.critical( self, self.tr('Process Generation Error'), self.tr( @@ -206,12 +236,13 @@ Public slot used to start a batch of processes. @param argsLists list of lists of arguments for the processes - (list of lists of strings) - @param workingDir working directory for the process (string) + @type list of list of str + @param workingDir working directory for the process + @type str @param mergedOutput flag indicating to merge the output of the process - (boolean) + @type bool @return flag indicating a successful start of the first process - (boolean) + @rtype bool """ self.argsLists = argsLists[:] self.workingDir = workingDir @@ -231,7 +262,8 @@ """ Public method to check for a normal process termination. - @return flag indicating normal process termination (boolean) + @return flag indicating normal process termination + @rtype bool """ return self.normal @@ -240,7 +272,8 @@ Public method to check for a normal process termination without error messages. - @return flag indicating normal process termination (boolean) + @return flag indicating normal process termination + @rtype bool """ return self.normal and self.errors.toPlainText() == "" @@ -275,7 +308,7 @@ """ Private slot to save the output to a file. """ - fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( + fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter( self, self.tr("Select data file"), self.workingDir, @@ -295,7 +328,7 @@ with open(fname, "w", encoding="utf-8") as f: f.write(txt) except OSError as err: - E5MessageBox.critical( + EricMessageBox.critical( self, self.tr("Error saving data"), self.tr("""<p>The data could not be written""" @@ -306,12 +339,13 @@ """ Private slot to handle the password checkbox toggled. - @param isOn flag indicating the status of the check box (boolean) + @param isOn flag indicating the status of the check box + @type bool """ if isOn: - self.input.setEchoMode(QLineEdit.Password) + self.input.setEchoMode(QLineEdit.EchoMode.Password) else: - self.input.setEchoMode(QLineEdit.Normal) + self.input.setEchoMode(QLineEdit.EchoMode.Normal) @pyqtSlot() def on_sendButton_clicked(self): @@ -344,7 +378,8 @@ """ Protected slot to handle a key press event. - @param evt the key press event (QKeyEvent) + @param evt the key press event + @type QKeyEvent """ if self.intercept: self.intercept = False
--- a/ProjectDjango/DjangoDialog.ui Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoDialog.ui Sat May 29 18:33:03 2021 +0200 @@ -137,6 +137,9 @@ <property name="toolTip"> <string>Enter data to be sent to the manage.py process</string> </property> + <property name="clearButtonEnabled"> + <bool>true</bool> + </property> </widget> </item> <item row="1" column="0">
--- a/ProjectDjango/DjangoDiffsettingsDataDialog.py Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoDiffsettingsDataDialog.py Sat May 29 18:33:03 2021 +0200 @@ -7,7 +7,7 @@ Module implementing a dialog to enter the data for the 'diffsettings' command. """ -from PyQt5.QtWidgets import QDialog +from PyQt6.QtWidgets import QDialog from .Ui_DjangoDiffsettingsDataDialog import Ui_DjangoDiffsettingsDataDialog @@ -41,7 +41,7 @@ @return tuple containing a flag indicating to show all settings, the name of a module containing the default settings and the - output format (Django 2.0.0+) + output format @rtype tuple of (bool, str, str) """ outputFormat = self.formatComboBox.itemData(
--- a/ProjectDjango/DjangoDiffsettingsDataDialog.ui Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoDiffsettingsDataDialog.ui Sat May 29 18:33:03 2021 +0200 @@ -39,6 +39,9 @@ <property name="toolTip"> <string>Enter the name of the module containing the default settings (1.11.0+ only)</string> </property> + <property name="clearButtonEnabled"> + <bool>true</bool> + </property> </widget> </item> <item row="2" column="0">
--- a/ProjectDjango/DjangoDumpdataDataDialog.py Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoDumpdataDataDialog.py Sat May 29 18:33:03 2021 +0200 @@ -9,7 +9,7 @@ import contextlib -from PyQt5.QtWidgets import QDialog +from PyQt6.QtWidgets import QDialog from .Ui_DjangoDumpdataDataDialog import Ui_DjangoDumpdataDataDialog @@ -23,7 +23,9 @@ Constructor @param project reference to the Django project object - @param parent reference to the parent widget (QWidget) + @type Project + @param parent reference to the parent widget + @type QWidget """ super().__init__(parent) self.setupUi(self) @@ -48,9 +50,9 @@ """ Public method to get the data entered into the dialog. - @return tuple of two lists of strings, a string and an integer giving - the list of applications to work on, the list of applications to - exclude, the dump format and the indentation level + @return tuple giving the list of applications to work on, the list of + applications to exclude, the dump format and the indentation level + @rtype tuple of (list of str, list of str, str, int) """ applStr = self.applicationsCombo.currentText() if applStr:
--- a/ProjectDjango/DjangoLoaddataDataDialog.py Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoLoaddataDataDialog.py Sat May 29 18:33:03 2021 +0200 @@ -9,10 +9,10 @@ import contextlib -from PyQt5.QtCore import pyqtSlot -from PyQt5.QtWidgets import QDialog, QDialogButtonBox +from PyQt6.QtCore import pyqtSlot +from PyQt6.QtWidgets import QDialog, QDialogButtonBox -from E5Gui import E5FileDialog +from EricWidgets import EricFileDialog from .Ui_DjangoLoaddataDataDialog import Ui_DjangoLoaddataDataDialog @@ -29,7 +29,9 @@ Constructor @param project reference to the Django project object - @param parent reference to the parent widget (QWidget) + @type Project + @param parent reference to the parent widget + @type QWidget """ super().__init__(parent) self.setupUi(self) @@ -38,7 +40,8 @@ self.__project = project - self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Ok).setEnabled(False) msh = self.minimumSizeHint() self.resize(max(self.width(), msh.width()), msh.height()) @@ -50,7 +53,8 @@ @param txt text of the line edit (string) """ - self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(bool(txt)) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Ok).setEnabled(bool(txt)) @pyqtSlot() def on_fixtureFileButton_clicked(self): @@ -63,7 +67,7 @@ fileFilters += self.tr("YAML Files (*.yaml);;") fileFilters += self.tr("All Files (*)") - fixtureFiles = E5FileDialog.getOpenFileNames( + fixtureFiles = EricFileDialog.getOpenFileNames( self, self.tr("Select fixture file"), self.__project.getProjectPath(),
--- a/ProjectDjango/DjangoLoaddataDataDialog.ui Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoLoaddataDataDialog.ui Sat May 29 18:33:03 2021 +0200 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>600</width> - <height>310</height> + <height>346</height> </rect> </property> <property name="sizePolicy"> @@ -47,6 +47,9 @@ <property name="toolTip"> <string>Enter the label of an application to search for fixtures</string> </property> + <property name="clearButtonEnabled"> + <bool>true</bool> + </property> </widget> </item> </layout> @@ -57,6 +60,9 @@ <string>Fixtures</string> </property> <layout class="QGridLayout" name="gridLayout"> + <property name="horizontalSpacing"> + <number>0</number> + </property> <item row="0" column="0" colspan="2"> <widget class="QLabel" name="label"> <property name="text"> @@ -68,7 +74,11 @@ </widget> </item> <item row="1" column="0"> - <widget class="QLineEdit" name="fixturesEdit"/> + <widget class="QLineEdit" name="fixturesEdit"> + <property name="clearButtonEnabled"> + <bool>true</bool> + </property> + </widget> </item> <item row="1" column="1"> <widget class="QToolButton" name="fixtureFileButton"> @@ -97,7 +107,11 @@ </widget> </item> <item> - <widget class="QLineEdit" name="excludeEdit"/> + <widget class="QLineEdit" name="excludeEdit"> + <property name="clearButtonEnabled"> + <bool>true</bool> + </property> + </widget> </item> </layout> </widget>
--- a/ProjectDjango/DjangoMakeMigrationsDialog.py Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoMakeMigrationsDialog.py Sat May 29 18:33:03 2021 +0200 @@ -7,7 +7,7 @@ Module implementing a dialog to enter the data needed to make migrations. """ -from PyQt5.QtWidgets import QDialog +from PyQt6.QtWidgets import QDialog from .Ui_DjangoMakeMigrationsDialog import Ui_DjangoMakeMigrationsDialog
--- a/ProjectDjango/DjangoMakeMigrationsDialog.ui Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoMakeMigrationsDialog.ui Sat May 29 18:33:03 2021 +0200 @@ -48,10 +48,13 @@ </widget> </item> <item row="1" column="1"> - <widget class="E5ClearableLineEdit" name="nameEdit"> + <widget class="QLineEdit" name="nameEdit"> <property name="toolTip"> <string>Enter a name for the migration</string> </property> + <property name="clearButtonEnabled"> + <bool>true</bool> + </property> </widget> </item> <item row="2" column="0" colspan="2"> @@ -102,13 +105,6 @@ </item> </layout> </widget> - <customwidgets> - <customwidget> - <class>E5ClearableLineEdit</class> - <extends>QLineEdit</extends> - <header>E5Gui/E5LineEdit.h</header> - </customwidget> - </customwidgets> <tabstops> <tabstop>applicationsComboBox</tabstop> <tabstop>nameEdit</tabstop>
--- a/ProjectDjango/DjangoMigrationSelectionDialog.py Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoMigrationSelectionDialog.py Sat May 29 18:33:03 2021 +0200 @@ -9,9 +9,9 @@ import os -from PyQt5.QtCore import pyqtSlot -from PyQt5.QtGui import QIcon -from PyQt5.QtWidgets import QDialog +from PyQt6.QtCore import pyqtSlot +from PyQt6.QtGui import QIcon +from PyQt6.QtWidgets import QDialog from .Ui_DjangoMigrationSelectionDialog import ( Ui_DjangoMigrationSelectionDialog
--- a/ProjectDjango/DjangoMigrationsListDialog.py Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoMigrationsListDialog.py Sat May 29 18:33:03 2021 +0200 @@ -7,14 +7,14 @@ Module implementing a dialog show a list of all available migrations. """ -from PyQt5.QtCore import pyqtSlot, Qt, QProcess, QTimer, QPoint -from PyQt5.QtWidgets import ( +from PyQt6.QtCore import pyqtSlot, Qt, QProcess, QTimer, QPoint +from PyQt6.QtWidgets import ( QDialog, QDialogButtonBox, QAbstractButton, QHeaderView, QTreeWidgetItem, QMenu, QAbstractItemView, QInputDialog, QLineEdit ) -from E5Gui import E5MessageBox +from EricWidgets import EricMessageBox from .Ui_DjangoMigrationsListDialog import Ui_DjangoMigrationsListDialog @@ -42,8 +42,10 @@ super().__init__(parent) self.setupUi(self) - self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) - self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Close).setEnabled(False) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Cancel).setDefault(True) self.ioEncoding = Preferences.getSystem("IOEncoding") @@ -64,7 +66,7 @@ self.tr("Name"), ]) self.migrationsList.setSelectionMode( - QAbstractItemView.ExtendedSelection) + QAbstractItemView.SelectionMode.ExtendedSelection) else: self.setWindowTitle(self.tr("Migrations Plan")) self.migrationsList.setHeaderLabels([ @@ -72,10 +74,10 @@ self.tr("Dependencies"), ]) self.migrationsList.setSelectionMode( - QAbstractItemView.SingleSelection) + QAbstractItemView.SelectionMode.SingleSelection) self.refreshButton = self.buttonBox.addButton( - self.tr("&Refresh"), QDialogButtonBox.ActionRole) + self.tr("&Refresh"), QDialogButtonBox.ButtonRole.ActionRole) self.refreshButton.setToolTip( self.tr("Press to refresh the list")) self.refreshButton.setEnabled(False) @@ -88,9 +90,13 @@ @param button button that was clicked @type QAbstractButton """ - if button == self.buttonBox.button(QDialogButtonBox.Close): + if button == self.buttonBox.button( + QDialogButtonBox.StandardButton.Close + ): self.close() - elif button == self.buttonBox.button(QDialogButtonBox.Cancel): + elif button == self.buttonBox.button( + QDialogButtonBox.StandardButton.Cancel + ): self.__finish() elif button == self.refreshButton: self.on_refreshButton_clicked() @@ -102,15 +108,18 @@ """ if ( self.proc is not None and - self.proc.state() != QProcess.NotRunning + self.proc.state() != QProcess.ProcessState.NotRunning ): self.proc.terminate() QTimer.singleShot(2000, self.proc.kill) self.proc.waitForFinished(3000) - self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) - self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) - self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Close).setEnabled(True) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Cancel).setEnabled(False) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Close).setDefault(True) self.refreshButton.setEnabled(True) @@ -120,8 +129,10 @@ """ Private slot connected to the finished signal. - @param exitCode exit code of the process (integer) - @param exitStatus exit status of the process (QProcess.ExitStatus) + @param exitCode exit code of the process + @type int + @param exitStatus exit status of the process + @type QProcess.ExitStatus """ self.__finish() @@ -130,7 +141,7 @@ Private method to resize the list columns. """ self.migrationsList.header().resizeSections( - QHeaderView.ResizeToContents) + QHeaderView.ResizeMode.ResizeToContents) if self.__mode == DjangoMigrationsListDialog.MigrationsListMode: self.migrationsList.header().setStretchLastSection(True) @@ -174,7 +185,7 @@ procStarted = self.proc.waitForStarted() if not procStarted: self.buttonBox.setFocus() - E5MessageBox.critical( + EricMessageBox.critical( self, self.tr('Process Generation Error'), self.tr( @@ -220,9 +231,9 @@ else: itm = QTreeWidgetItem(self.migrationsList, [name]) if applied[1] == " ": - itm.setCheckState(0, Qt.Unchecked) + itm.setCheckState(0, Qt.CheckState.Unchecked) else: - itm.setCheckState(0, Qt.Checked) + itm.setCheckState(0, Qt.CheckState.Checked) def __createPlanItem(self, line): """ @@ -248,7 +259,7 @@ "", ]) if applied[1] != " ": - itm.setCheckState(0, Qt.Checked) + itm.setCheckState(0, Qt.CheckState.Checked) def __readStderr(self): """ @@ -269,9 +280,12 @@ """ Private slot to refresh the log. """ - self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) - self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True) - self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Close).setEnabled(False) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Cancel).setEnabled(True) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Cancel).setDefault(True) self.refreshButton.setEnabled(False) @@ -381,7 +395,7 @@ self.tr("Make Migrations"), self.tr("Enter a name for the migrations (leave empty to" " use system supplied name):"), - QLineEdit.Normal) + QLineEdit.EchoMode.Normal) if ok: self.__django.makeMigrations(apps, migration, dryRun, empty,
--- a/ProjectDjango/DjangoRunTestServerDataDialog.py Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoRunTestServerDataDialog.py Sat May 29 18:33:03 2021 +0200 @@ -9,14 +9,13 @@ import contextlib -from PyQt5.QtCore import pyqtSlot -from PyQt5.QtWidgets import QDialog, QDialogButtonBox +from PyQt6.QtCore import pyqtSlot +from PyQt6.QtWidgets import QDialog, QDialogButtonBox -from E5Gui import E5FileDialog +from EricWidgets.EricPathPicker import EricPathPickerModes from .Ui_DjangoRunTestServerDataDialog import Ui_DjangoRunTestServerDataDialog -import Utilities import UI.PixmapCache @@ -29,57 +28,51 @@ Constructor @param project reference to the Django project object - @param parent reference to the parent widget (QWidget) + @type Project + @param parent reference to the parent widget + @type QWidget """ super().__init__(parent) self.setupUi(self) - self.fixtureFileButton.setIcon(UI.PixmapCache.getIcon("open")) - - self.__project = project - - self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False) - - msh = self.minimumSizeHint() - self.resize(max(self.width(), msh.width()), msh.height()) - - @pyqtSlot(str) - def on_fixturesEdit_textChanged(self, txt): - """ - Private slot to handle a change of the fixtures text. - - @param txt text of the line edit (string) - """ - self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(bool(txt)) - - @pyqtSlot() - def on_fixtureFileButton_clicked(self): - """ - Private slot to select a fixture file via a file selection dialog. - """ fileFilters = self.tr("JSON Files (*.json);;XML Files (*.xml);;") with contextlib.suppress(ImportError): import yaml # __IGNORE_WARNING__ fileFilters += self.tr("YAML Files (*.yaml);;") fileFilters += self.tr("All Files (*)") - fixtureFiles = E5FileDialog.getOpenFileNames( - self, - self.tr("Select fixture file"), - self.__project.getProjectPath(), - fileFilters) + self.fixturePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE) + self.fixturePicker.setFilters(fileFilters) + + self.fixtureFileButton.setIcon(UI.PixmapCache.getIcon("open")) + + self.__project = project + + self.buttonBox.button( + QDialogButtonBox.StandardButton.Ok).setEnabled(False) - if fixtureFiles: - self.fixturesEdit.setText(" ".join( - [Utilities.toNativeSeparators(f) for f in fixtureFiles])) + msh = self.minimumSizeHint() + self.resize(max(self.width(), msh.width()), msh.height()) + + @pyqtSlot(str) + def on_fixturesPicker_textChanged(self, txt): + """ + Private slot to handle a change of the fixtures text. + + @param txt text of the line edit + @type str + """ + self.buttonBox.button( + QDialogButtonBox.StandardButton.Ok).setEnabled(bool(txt)) def getData(self): """ Public method to get the data entered into the dialog. - @return list of fixtures (list of strings) + @return list of fixtures + @rtype list of str """ - fixturesStr = self.fixturesEdit.text() + fixturesStr = self.fixturePicker.text() fixtures = fixturesStr.split() return fixtures
--- a/ProjectDjango/DjangoRunTestServerDataDialog.ui Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoRunTestServerDataDialog.ui Sat May 29 18:33:03 2021 +0200 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>600</width> - <height>102</height> + <height>92</height> </rect> </property> <property name="sizePolicy"> @@ -22,25 +22,22 @@ <property name="sizeGripEnabled"> <bool>true</bool> </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0" colspan="2"> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> <widget class="QLabel" name="label"> <property name="text"> <string>Enter the list of fixture patterns or the path of a fixture file.</string> </property> </widget> </item> - <item row="1" column="0"> - <widget class="QLineEdit" name="fixturesEdit"/> - </item> - <item row="1" column="1"> - <widget class="QToolButton" name="fixtureFileButton"> - <property name="toolTip"> - <string>Select a fixture file via a file selection dialog</string> + <item> + <widget class="EricPathPicker" name="fixturePicker" native="true"> + <property name="focusPolicy"> + <enum>Qt::WheelFocus</enum> </property> </widget> </item> - <item row="2" column="0" colspan="2"> + <item> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -52,9 +49,15 @@ </item> </layout> </widget> + <customwidgets> + <customwidget> + <class>EricPathPicker</class> + <extends>QWidget</extends> + <header>EricWidgets/EricPathPicker.h</header> + <container>1</container> + </customwidget> + </customwidgets> <tabstops> - <tabstop>fixturesEdit</tabstop> - <tabstop>fixtureFileButton</tabstop> <tabstop>buttonBox</tabstop> </tabstops> <resources/>
--- a/ProjectDjango/DjangoSendTestEmailDataDialog.py Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoSendTestEmailDataDialog.py Sat May 29 18:33:03 2021 +0200 @@ -7,7 +7,7 @@ Module implementing a dialog to enter the data for the 'sendtestemail' command. """ -from PyQt5.QtWidgets import QDialog +from PyQt6.QtWidgets import QDialog from .Ui_DjangoSendTestEmailDataDialog import Ui_DjangoSendTestEmailDataDialog
--- a/ProjectDjango/DjangoSquashMigrationSelectionDialog.py Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoSquashMigrationSelectionDialog.py Sat May 29 18:33:03 2021 +0200 @@ -9,9 +9,9 @@ import os -from PyQt5.QtCore import pyqtSlot -from PyQt5.QtGui import QIcon -from PyQt5.QtWidgets import QDialog, QDialogButtonBox +from PyQt6.QtCore import pyqtSlot +from PyQt6.QtGui import QIcon +from PyQt6.QtWidgets import QDialog, QDialogButtonBox from .Ui_DjangoSquashMigrationSelectionDialog import ( Ui_DjangoSquashMigrationSelectionDialog @@ -58,7 +58,8 @@ enabled = ( bool(self.applicationComboBox.currentText()) and bool(self.endMigrationComboBox.currentText())) - self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(enabled) + self.buttonBox.button( + QDialogButtonBox.StandardButton.Ok).setEnabled(enabled) @pyqtSlot(str) def on_applicationComboBox_activated(self, app):
--- a/ProjectDjango/DjangoSquashMigrationSelectionDialog.ui Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoSquashMigrationSelectionDialog.ui Sat May 29 18:33:03 2021 +0200 @@ -89,6 +89,9 @@ <property name="toolTip"> <string>Enter an optional name for the migration (2.0.0+ only)</string> </property> + <property name="clearButtonEnabled"> + <bool>true</bool> + </property> </widget> </item> <item row="4" column="0" colspan="2">
--- a/ProjectDjango/DjangoTestDataDialog.py Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoTestDataDialog.py Sat May 29 18:33:03 2021 +0200 @@ -7,7 +7,7 @@ Module implementing a dialog to enter some data for running tests. """ -from PyQt5.QtWidgets import QDialog +from PyQt6.QtWidgets import QDialog from .Ui_DjangoTestDataDialog import Ui_DjangoTestDataDialog
--- a/ProjectDjango/DjangoTestDataDialog.ui Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/DjangoTestDataDialog.ui Sat May 29 18:33:03 2021 +0200 @@ -25,7 +25,7 @@ </widget> </item> <item row="0" column="1"> - <widget class="E5ClearableComboBox" name="labelsComboBox"> + <widget class="QComboBox" name="labelsComboBox"> <property name="toolTip"> <string>Enter the tests to be performed separated by space</string> </property> @@ -42,10 +42,13 @@ </widget> </item> <item row="1" column="1"> - <widget class="E5ClearableLineEdit" name="testFilePatternsEdit"> + <widget class="QLineEdit" name="testFilePatternsEdit"> <property name="toolTip"> <string>Enter the test file pattern</string> </property> + <property name="clearButtonEnabled"> + <bool>true</bool> + </property> </widget> </item> <item row="2" column="0"> @@ -56,7 +59,7 @@ </widget> </item> <item row="2" column="1"> - <widget class="E5ClearableComboBox" name="tagsComboBox"> + <widget class="QComboBox" name="tagsComboBox"> <property name="toolTip"> <string>Enter the test tags to be run separated by space</string> </property> @@ -73,7 +76,7 @@ </widget> </item> <item row="3" column="1"> - <widget class="E5ClearableComboBox" name="excludeTagsComboBox"> + <widget class="QComboBox" name="excludeTagsComboBox"> <property name="toolTip"> <string>Enter the test tags to be skipped separated by space</string> </property> @@ -114,18 +117,6 @@ </item> </layout> </widget> - <customwidgets> - <customwidget> - <class>E5ClearableComboBox</class> - <extends>QComboBox</extends> - <header>E5Gui/E5ComboBox.h</header> - </customwidget> - <customwidget> - <class>E5ClearableLineEdit</class> - <extends>QLineEdit</extends> - <header>E5Gui/E5LineEdit.h</header> - </customwidget> - </customwidgets> <resources/> <connections> <connection>
--- a/ProjectDjango/Documentation/help/howto-debug.html Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/Documentation/help/howto-debug.html Sat May 29 18:33:03 2021 +0200 @@ -6,9 +6,9 @@ <body> <h2>How to debug Django projects</h2> <p>This little howto gives step-by-step instructions for debugging a Django - project with the eric4 debugger.</p> + project with the eric7 debugger.</p> <ol> - <li>Make the manage.py script of the Django project the eric4 project's + <li>Make the manage.py script of the Django project the eric7 project's main script (see the Project Properties dialog).</li> <li>Set a breakpoint at the position you want to start debugging.</li> <li>Start the debugger using "runserver --noreload"</li>
--- a/ProjectDjango/Documentation/source/Plugin_Project_Django.PluginProjectDjango.html Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/Documentation/source/Plugin_Project_Django.PluginProjectDjango.html Sat May 29 18:33:03 2021 +0200 @@ -160,9 +160,9 @@ </p> <dl> -<dt><i>ui</i></dt> +<dt><i>ui</i> (UserInterface)</dt> <dd> -reference to the user interface object (UI.UserInterface) +reference to the user interface object </dd> </dl> <a NAME="ProjectDjangoPlugin.__initialize" ID="ProjectDjangoPlugin.__initialize"></a> @@ -210,7 +210,13 @@ <dl> <dt>Return:</dt> <dd> -tuple of None and activation status (boolean) +tuple of None and activation status +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool </dd> </dl> <a NAME="ProjectDjangoPlugin.binaryTranslationsCallback" ID="ProjectDjangoPlugin.binaryTranslationsCallback"></a> @@ -223,15 +229,21 @@ </p> <dl> -<dt><i>filename</i></dt> +<dt><i>filename</i> (str)</dt> <dd> -name of the translation source file (string) +name of the translation source file </dd> </dl> <dl> <dt>Return:</dt> <dd> -name of the binary translation file (string) +name of the binary translation file +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str </dd> </dl> <a NAME="ProjectDjangoPlugin.deactivate" ID="ProjectDjangoPlugin.deactivate"></a> @@ -254,6 +266,12 @@ dictionary with file type associations </dd> </dl> +<dl> +<dt>Return Type:</dt> +<dd> +dict +</dd> +</dl> <a NAME="ProjectDjangoPlugin.getMenu" ID="ProjectDjangoPlugin.getMenu"></a> <h4>ProjectDjangoPlugin.getMenu</h4> <b>getMenu</b>(<i>name</i>) @@ -297,7 +315,7 @@ </p> <dl> -<dt><i>key</i></dt> +<dt><i>key</i> (str)</dt> <dd> the key of the value to get </dd> @@ -305,7 +323,13 @@ <dl> <dt>Return:</dt> <dd> -the requested setting +value of the requested setting +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +Any </dd> </dl> <a NAME="ProjectDjangoPlugin.lexerAssociationCallback" ID="ProjectDjangoPlugin.lexerAssociationCallback"></a> @@ -318,18 +342,24 @@ </p> <dl> -<dt><i>filename</i></dt> +<dt><i>filename</i> (str)</dt> <dd> -name of the file (string) +name of the file </dd> </dl> <dl> <dt>Return:</dt> <dd> -name of the lexer (string) (Pygments lexers are prefixed with +name of the lexer (Pygments lexers are prefixed with 'Pygments|') </dd> </dl> +<dl> +<dt>Return Type:</dt> +<dd> +str +</dd> +</dl> <a NAME="ProjectDjangoPlugin.setPreferences" ID="ProjectDjangoPlugin.setPreferences"></a> <h4>ProjectDjangoPlugin.setPreferences</h4> <b>setPreferences</b>(<i>key, value</i>) @@ -339,13 +369,13 @@ </p> <dl> -<dt><i>key</i></dt> +<dt><i>key</i> (str)</dt> <dd> -the key of the setting to be set (string) +the key of the setting to be set </dd> -<dt><i>value</i></dt> +<dt><i>value</i> (Any)</dt> <dd> -the value to be set +value to be set </dd> </dl> <div align="right"><a href="#top">Up</a></div> @@ -360,15 +390,21 @@ </p> <dl> -<dt><i>language</i></dt> +<dt><i>language</i> (str)</dt> <dd> -language to get APIs for (string) +language to get APIs for </dd> </dl> <dl> <dt>Return:</dt> <dd> -list of API filenames (list of string) +list of API filenames +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +list of str </dd> </dl> <div align="right"><a href="#top">Up</a></div> @@ -383,7 +419,7 @@ </p> <dl> -<dt><i>configDlg</i></dt> +<dt><i>configDlg</i> (ConfigurationWidget)</dt> <dd> reference to the configuration dialog </dd> @@ -394,6 +430,12 @@ reference to the configuration page </dd> </dl> +<dl> +<dt>Return Type:</dt> +<dd> +DjangoPage +</dd> +</dl> <div align="right"><a href="#top">Up</a></div> <hr /> <hr /> @@ -410,6 +452,12 @@ dictionary containing the relevant data </dd> </dl> +<dl> +<dt>Return Type:</dt> +<dd> +dict +</dd> +</dl> <div align="right"><a href="#top">Up</a></div> <hr /> <hr />
--- a/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.ConfigurationPage.DjangoPage.html Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.ConfigurationPage.DjangoPage.html Sat May 29 18:33:03 2021 +0200 @@ -73,14 +73,6 @@ <td>Constructor</td> </tr> <tr> -<td><a href="#DjangoPage.on_translationsButton_clicked">on_translationsButton_clicked</a></td> -<td>Private slot to select the translations editor via a file selection dialog.</td> -</tr> -<tr> -<td><a href="#DjangoPage.on_virtualEnvPy3Button_clicked">on_virtualEnvPy3Button_clicked</a></td> -<td>Private slot to select the virtual environment for Python 3 via a directory selection dialog.</td> -</tr> -<tr> <td><a href="#DjangoPage.save">save</a></td> <td>Public slot to save the Django configuration.</td> </tr> @@ -105,22 +97,6 @@ reference to the plugin object </dd> </dl> -<a NAME="DjangoPage.on_translationsButton_clicked" ID="DjangoPage.on_translationsButton_clicked"></a> -<h4>DjangoPage.on_translationsButton_clicked</h4> -<b>on_translationsButton_clicked</b>(<i></i>) - -<p> - Private slot to select the translations editor via a file selection - dialog. -</p> -<a NAME="DjangoPage.on_virtualEnvPy3Button_clicked" ID="DjangoPage.on_virtualEnvPy3Button_clicked"></a> -<h4>DjangoPage.on_virtualEnvPy3Button_clicked</h4> -<b>on_virtualEnvPy3Button_clicked</b>(<i></i>) - -<p> - Private slot to select the virtual environment for Python 3 via a - directory selection dialog. -</p> <a NAME="DjangoPage.save" ID="DjangoPage.save"></a> <h4>DjangoPage.save</h4> <b>save</b>(<i></i>)
--- a/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoDialog.html Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoDialog.html Sat May 29 18:33:03 2021 +0200 @@ -149,39 +149,37 @@ </p> <dl> -<dt><i>text</i></dt> +<dt><i>text</i> (str)</dt> <dd> -text to be shown by the label (string) +text to be shown by the label </dd> -<dt><i>fixed=</i></dt> +<dt><i>fixed</i> (bool)</dt> <dd> -flag indicating a fixed font should be used (boolean) +flag indicating a fixed font should be used </dd> -<dt><i>linewrap=</i></dt> +<dt><i>linewrap</i> (bool)</dt> <dd> -flag indicating to wrap long lines (boolean) +flag indicating to wrap long lines </dd> -<dt><i>msgSuccess=</i></dt> +<dt><i>msgSuccess</i> (str)</dt> <dd> optional string to show upon successful execution - (string) </dd> -<dt><i>msgError=</i></dt> +<dt><i>msgError</i> (str)</dt> <dd> optional string to show upon unsuccessful execution - (string) </dd> -<dt><i>saveFilters=</i></dt> +<dt><i>saveFilters</i> (str)</dt> <dd> -filename filter string (string) +filename filter string </dd> -<dt><i>showInput=</i></dt> +<dt><i>showInput</i> (bool)</dt> <dd> -flag indicating to show the input widgets (bool) +flag indicating to show the input widgets </dd> -<dt><i>parent=</i></dt> +<dt><i>parent</i> (QWidget)</dt> <dd> -parent widget (QWidget) +parent widget </dd> </dl> <a NAME="DjangoDialog.__finish" ID="DjangoDialog.__finish"></a> @@ -201,13 +199,13 @@ </p> <dl> -<dt><i>exitCode</i></dt> +<dt><i>exitCode</i> (int)</dt> <dd> -exit code of the process (integer) +exit code of the process </dd> -<dt><i>exitStatus</i></dt> +<dt><i>exitStatus</i> (QProcess.ExitStatus)</dt> <dd> -exit status of the process (QProcess.ExitStatus) +exit status of the process </dd> </dl> <a NAME="DjangoDialog.__readStderr" ID="DjangoDialog.__readStderr"></a> @@ -248,9 +246,9 @@ </p> <dl> -<dt><i>evt</i></dt> +<dt><i>evt</i> (QKeyEvent)</dt> <dd> -the key press event (QKeyEvent) +the key press event </dd> </dl> <a NAME="DjangoDialog.normalExit" ID="DjangoDialog.normalExit"></a> @@ -263,7 +261,13 @@ <dl> <dt>Return:</dt> <dd> -flag indicating normal process termination (boolean) +flag indicating normal process termination +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool </dd> </dl> <a NAME="DjangoDialog.normalExitWithoutErrors" ID="DjangoDialog.normalExitWithoutErrors"></a> @@ -277,7 +281,13 @@ <dl> <dt>Return:</dt> <dd> -flag indicating normal process termination (boolean) +flag indicating normal process termination +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool </dd> </dl> <a NAME="DjangoDialog.on_buttonBox_clicked" ID="DjangoDialog.on_buttonBox_clicked"></a> @@ -289,9 +299,9 @@ </p> <dl> -<dt><i>button</i></dt> +<dt><i>button</i> (QAbstractButton)</dt> <dd> -button that was clicked (QAbstractButton) +button that was clicked </dd> </dl> <a NAME="DjangoDialog.on_input_returnPressed" ID="DjangoDialog.on_input_returnPressed"></a> @@ -310,9 +320,9 @@ </p> <dl> -<dt><i>isOn</i></dt> +<dt><i>isOn</i> (bool)</dt> <dd> -flag indicating the status of the check box (boolean) +flag indicating the status of the check box </dd> </dl> <a NAME="DjangoDialog.on_sendButton_clicked" ID="DjangoDialog.on_sendButton_clicked"></a> @@ -331,26 +341,29 @@ </p> <dl> -<dt><i>argsLists</i></dt> +<dt><i>argsLists</i> (list of list of str)</dt> <dd> list of lists of arguments for the processes - (list of lists of strings) </dd> -<dt><i>workingDir</i></dt> +<dt><i>workingDir</i> (str)</dt> <dd> -working directory for the process (string) +working directory for the process </dd> -<dt><i>mergedOutput</i></dt> +<dt><i>mergedOutput</i> (bool)</dt> <dd> flag indicating to merge the output of the process - (boolean) </dd> </dl> <dl> <dt>Return:</dt> <dd> flag indicating a successful start of the first process - (boolean) +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool </dd> </dl> <a NAME="DjangoDialog.startProcess" ID="DjangoDialog.startProcess"></a> @@ -362,29 +375,33 @@ </p> <dl> -<dt><i>args</i></dt> +<dt><i>args</i> (list of str)</dt> <dd> -list of arguments for the process (list of strings) +list of arguments for the process </dd> -<dt><i>workingDir</i></dt> +<dt><i>workingDir</i> (str)</dt> <dd> -working directory for the process (string) +working directory for the process </dd> -<dt><i>showCommand</i></dt> +<dt><i>showCommand</i> (bool)</dt> <dd> flag indicating to show the command executed - (boolean) </dd> -<dt><i>mergedOutput</i></dt> +<dt><i>mergedOutput</i> (bool)</dt> <dd> flag indicating to merge the output of the process - (boolean) </dd> </dl> <dl> <dt>Return:</dt> <dd> -flag indicating a successful start of the process (boolean) +flag indicating a successful start of the process +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool </dd> </dl> <div align="right"><a href="#top">Up</a></div>
--- a/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoDiffsettingsDataDialog.html Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoDiffsettingsDataDialog.html Sat May 29 18:33:03 2021 +0200 @@ -114,7 +114,7 @@ <dd> tuple containing a flag indicating to show all settings, the name of a module containing the default settings and the - output format (Django 2.0.0+) + output format </dd> </dl> <dl>
--- a/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoDumpdataDataDialog.html Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoDumpdataDataDialog.html Sat May 29 18:33:03 2021 +0200 @@ -92,13 +92,13 @@ </p> <dl> -<dt><i>project</i></dt> +<dt><i>project</i> (Project)</dt> <dd> reference to the Django project object </dd> -<dt><i>parent</i></dt> +<dt><i>parent</i> (QWidget)</dt> <dd> -reference to the parent widget (QWidget) +reference to the parent widget </dd> </dl> <a NAME="DjangoDumpdataDataDialog.getData" ID="DjangoDumpdataDataDialog.getData"></a> @@ -111,9 +111,14 @@ <dl> <dt>Return:</dt> <dd> -tuple of two lists of strings, a string and an integer giving - the list of applications to work on, the list of applications to - exclude, the dump format and the indentation level +tuple giving the list of applications to work on, the list of + applications to exclude, the dump format and the indentation level +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +tuple of (list of str, list of str, str, int) </dd> </dl> <div align="right"><a href="#top">Up</a></div>
--- a/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoLoaddataDataDialog.html Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoLoaddataDataDialog.html Sat May 29 18:33:03 2021 +0200 @@ -100,13 +100,13 @@ </p> <dl> -<dt><i>project</i></dt> +<dt><i>project</i> (Project)</dt> <dd> reference to the Django project object </dd> -<dt><i>parent</i></dt> +<dt><i>parent</i> (QWidget)</dt> <dd> -reference to the parent widget (QWidget) +reference to the parent widget </dd> </dl> <a NAME="DjangoLoaddataDataDialog.getData" ID="DjangoLoaddataDataDialog.getData"></a>
--- a/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoMigrationsListDialog.html Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoMigrationsListDialog.html Sat May 29 18:33:03 2021 +0200 @@ -238,13 +238,13 @@ </p> <dl> -<dt><i>exitCode</i></dt> +<dt><i>exitCode</i> (int)</dt> <dd> -exit code of the process (integer) +exit code of the process </dd> -<dt><i>exitStatus</i></dt> +<dt><i>exitStatus</i> (QProcess.ExitStatus)</dt> <dd> -exit status of the process (QProcess.ExitStatus) +exit status of the process </dd> </dl> <a NAME="DjangoMigrationsListDialog.__readStderr" ID="DjangoMigrationsListDialog.__readStderr"></a>
--- a/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoRunTestServerDataDialog.html Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.DjangoRunTestServerDataDialog.html Sat May 29 18:33:03 2021 +0200 @@ -77,11 +77,7 @@ <td>Public method to get the data entered into the dialog.</td> </tr> <tr> -<td><a href="#DjangoRunTestServerDataDialog.on_fixtureFileButton_clicked">on_fixtureFileButton_clicked</a></td> -<td>Private slot to select a fixture file via a file selection dialog.</td> -</tr> -<tr> -<td><a href="#DjangoRunTestServerDataDialog.on_fixturesEdit_textChanged">on_fixturesEdit_textChanged</a></td> +<td><a href="#DjangoRunTestServerDataDialog.on_fixturesPicker_textChanged">on_fixturesPicker_textChanged</a></td> <td>Private slot to handle a change of the fixtures text.</td> </tr> </table> @@ -100,13 +96,13 @@ </p> <dl> -<dt><i>project</i></dt> +<dt><i>project</i> (Project)</dt> <dd> reference to the Django project object </dd> -<dt><i>parent</i></dt> +<dt><i>parent</i> (QWidget)</dt> <dd> -reference to the parent widget (QWidget) +reference to the parent widget </dd> </dl> <a NAME="DjangoRunTestServerDataDialog.getData" ID="DjangoRunTestServerDataDialog.getData"></a> @@ -119,28 +115,27 @@ <dl> <dt>Return:</dt> <dd> -list of fixtures (list of strings) +list of fixtures </dd> </dl> -<a NAME="DjangoRunTestServerDataDialog.on_fixtureFileButton_clicked" ID="DjangoRunTestServerDataDialog.on_fixtureFileButton_clicked"></a> -<h4>DjangoRunTestServerDataDialog.on_fixtureFileButton_clicked</h4> -<b>on_fixtureFileButton_clicked</b>(<i></i>) - -<p> - Private slot to select a fixture file via a file selection dialog. -</p> -<a NAME="DjangoRunTestServerDataDialog.on_fixturesEdit_textChanged" ID="DjangoRunTestServerDataDialog.on_fixturesEdit_textChanged"></a> -<h4>DjangoRunTestServerDataDialog.on_fixturesEdit_textChanged</h4> -<b>on_fixturesEdit_textChanged</b>(<i>txt</i>) +<dl> +<dt>Return Type:</dt> +<dd> +list of str +</dd> +</dl> +<a NAME="DjangoRunTestServerDataDialog.on_fixturesPicker_textChanged" ID="DjangoRunTestServerDataDialog.on_fixturesPicker_textChanged"></a> +<h4>DjangoRunTestServerDataDialog.on_fixturesPicker_textChanged</h4> +<b>on_fixturesPicker_textChanged</b>(<i>txt</i>) <p> Private slot to handle a change of the fixtures text. </p> <dl> -<dt><i>txt</i></dt> +<dt><i>txt</i> (str)</dt> <dd> -text of the line edit (string) +text of the line edit </dd> </dl> <div align="right"><a href="#top">Up</a></div>
--- a/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.Project.html Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/Documentation/source/Plugin_Project_Django.ProjectDjango.Project.html Sat May 29 18:33:03 2021 +0200 @@ -422,7 +422,7 @@ </tr> <tr> <td><a href="#Project.__unapplyMigrations">__unapplyMigrations</a></td> -<td>Private slot to un-apply all migrations of an application.</td> +<td>Private slot to revert all migrations of an application.</td> </tr> <tr> <td><a href="#Project.applyMigrations">applyMigrations</a></td> @@ -458,7 +458,7 @@ </tr> <tr> <td><a href="#Project.getProjectPath">getProjectPath</a></td> -<td>Public method to get the path of the eric6 project.</td> +<td>Public method to get the path of the eric7 project.</td> </tr> <tr> <td><a href="#Project.getRecentApplications">getRecentApplications</a></td> @@ -632,25 +632,29 @@ </p> <dl> -<dt><i>applName</i></dt> +<dt><i>applName</i> (str)</dt> <dd> -name of the new application (string) +name of the new application </dd> -<dt><i>path</i></dt> +<dt><i>path</i> (str)</dt> <dd> the directory where the application should be created - (string) </dd> -<dt><i>isGlobal</i></dt> +<dt><i>isGlobal</i> (bool)</dt> <dd> flag indicating a standalone Django application - (boolean) </dd> </dl> <dl> <dt>Return:</dt> <dd> -flag indicating a successful creation (boolean) +flag indicating a successful creation +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool </dd> </dl> <a NAME="Project.__createCacheTables" ID="Project.__createCacheTables"></a> @@ -669,20 +673,25 @@ </p> <dl> -<dt><i>projectName</i></dt> +<dt><i>projectName</i> (str)</dt> <dd> -name of the new project (string) +name of the new project </dd> -<dt><i>path</i></dt> +<dt><i>path</i> (str)</dt> <dd> the directory where the project should be created - (string) </dd> </dl> <dl> <dt>Return:</dt> <dd> -flag indicating a successful creation (boolean) +flag indicating a successful creation +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +bool </dd> </dl> <a NAME="Project.__createSuperUser" ID="Project.__createSuperUser"></a> @@ -728,7 +737,7 @@ <dt><i>backwards</i> (bool)</dt> <dd> -flag indicating to generate the SQL code to unapply +flag indicating to generate the SQL code to revert a migration </dd> </dl> @@ -771,7 +780,13 @@ <dl> <dt>Return:</dt> <dd> -list of sites (list of strings) +list of sites +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +list of str </dd> </dl> <a NAME="Project.__getApplications" ID="Project.__getApplications"></a> @@ -784,7 +799,13 @@ <dl> <dt>Return:</dt> <dd> -list of application names (list of strings) +list of application names +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +list of str </dd> </dl> <a NAME="Project.__getDebugEnvironment" ID="Project.__getDebugEnvironment"></a> @@ -796,16 +817,22 @@ </p> <dl> -<dt><i>language</i></dt> +<dt><i>language</i> (str)</dt> <dd> Python variant to get the debugger environment - for (string, one of '' or 'Python3') + for (one of '' or 'Python3') </dd> </dl> <dl> <dt>Return:</dt> <dd> -path of the debugger environment (string) +path of the debugger environment +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str </dd> </dl> <a NAME="Project.__getDjangoAdminCommand" ID="Project.__getDjangoAdminCommand"></a> @@ -817,16 +844,22 @@ </p> <dl> -<dt><i>language</i></dt> +<dt><i>language</i> (str)</dt> <dd> Python variant to get the django-admin.py - command for (string, one of '' or 'Python3') + command for (one of '' or 'Python3') </dd> </dl> <dl> <dt>Return:</dt> <dd> -full django-admin.py command (string) +full django-admin.py command +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str </dd> </dl> <a NAME="Project.__getExecutablePaths" ID="Project.__getExecutablePaths"></a> @@ -839,9 +872,9 @@ </p> <dl> -<dt><i>file</i></dt> +<dt><i>file</i> (str)</dt> <dd> -filename of the executable (string) +filename of the executable </dd> </dl> <dl> @@ -852,6 +885,12 @@ variable, or an empty list otherwise. </dd> </dl> +<dl> +<dt>Return Type:</dt> +<dd> +list of str +</dd> +</dl> <a NAME="Project.__getLocale" ID="Project.__getLocale"></a> <h4>Project.__getLocale</h4> <b>__getLocale</b>(<i>filename</i>) @@ -861,15 +900,21 @@ </p> <dl> -<dt><i>filename</i></dt> +<dt><i>filename</i> (str)</dt> <dd> -name of the file used for extraction (string) +name of the file used for extraction </dd> </dl> <dl> <dt>Return:</dt> <dd> -extracted locale (string) or None +extracted locale or None +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str </dd> </dl> <a NAME="Project.__getMigrations" ID="Project.__getMigrations"></a> @@ -902,7 +947,13 @@ <dl> <dt>Return:</dt> <dd> -python command (string) +python command +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str </dd> </dl> <a NAME="Project.__getVirtualEnvironment" ID="Project.__getVirtualEnvironment"></a> @@ -914,16 +965,22 @@ </p> <dl> -<dt><i>language</i></dt> +<dt><i>language</i> (str)</dt> <dd> Python variant to get the virtual environment - for (string, one of '' or 'Python3') + for (one of '' or 'Python3') </dd> </dl> <dl> <dt>Return:</dt> <dd> -path of the virtual environment (string) +path of the virtual environment +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str </dd> </dl> <a NAME="Project.__initAuthorizationActions" ID="Project.__initAuthorizationActions"></a> @@ -1117,17 +1174,22 @@ </p> <dl> -<dt><i>consoleCmd</i></dt> +<dt><i>consoleCmd</i> (str)</dt> <dd> -console command (string) +console command </dd> </dl> <dl> <dt>Return:</dt> <dd> tuple of two entries giving an indication, if the console - is spawning (boolean) and the (possibly) cleaned console command - (string) + is spawning and the (possibly) cleaned console command +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +tuple of (bool, str) </dd> </dl> <a NAME="Project.__isSuitableForVariant" ID="Project.__isSuitableForVariant"></a> @@ -1205,15 +1267,21 @@ </p> <dl> -<dt><i>filenames</i></dt> +<dt><i>filenames</i> (list of str)</dt> <dd> -list of file names to normalize (list of strings) +list of file names to normalize </dd> </dl> <dl> <dt>Return:</dt> <dd> -normalized file names (list of strings) +normalized file names +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +list of str </dd> </dl> <a NAME="Project.__performCheck" ID="Project.__performCheck"></a> @@ -1232,9 +1300,9 @@ </p> <dl> -<dt><i>code</i></dt> +<dt><i>code</i> (str)</dt> <dd> -language code of the new language (string) +language code of the new language </dd> </dl> <a NAME="Project.__runBrowser" ID="Project.__runBrowser"></a> @@ -1359,9 +1427,9 @@ </p> <dl> -<dt><i>site</i></dt> +<dt><i>site</i> (str)</dt> <dd> -name of the site (string) +name of the site </dd> </dl> <a NAME="Project.__showHelpIndex" ID="Project.__showHelpIndex"></a> @@ -1395,7 +1463,13 @@ <dl> <dt>Return:</dt> <dd> -name of the site (string) +name of the site +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str </dd> </dl> <dl> @@ -1414,15 +1488,21 @@ </p> <dl> -<dt><i>filenames</i></dt> +<dt><i>filenames</i> (list of str)</dt> <dd> -list of file names to be filtered (list of strings) +list of file names to be filtered </dd> </dl> <dl> <dt>Return:</dt> <dd> -file names belonging to the current site (list of strings) +file names belonging to the current site +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +list of str </dd> </dl> <a NAME="Project.__sitePath" ID="Project.__sitePath"></a> @@ -1435,7 +1515,13 @@ <dl> <dt>Return:</dt> <dd> -path of the site (string) +path of the site +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str </dd> </dl> <dl> @@ -1454,18 +1540,18 @@ </p> <dl> -<dt><i>title</i></dt> +<dt><i>title</i> (str)</dt> <dd> -dialog title (string) +dialog title </dd> -<dt><i>command</i></dt> +<dt><i>command</i> (str)</dt> <dd> -Django sql... command (string) +Django sql... command </dd> -<dt><i>requestApps</i></dt> +<dt><i>requestApps</i> (bool)</dt> <dd> flag indicating to request a list of applications - to work on (boolean) + to work on </dd> </dl> <a NAME="Project.__squashMigrations" ID="Project.__squashMigrations"></a> @@ -1508,7 +1594,7 @@ <b>__unapplyMigrations</b>(<i></i>) <p> - Private slot to un-apply all migrations of an application. + Private slot to revert all migrations of an application. </p> <a NAME="Project.applyMigrations" ID="Project.applyMigrations"></a> <h4>Project.applyMigrations</h4> @@ -1537,7 +1623,7 @@ </p> <dl> -<dt><i>filenames</i></dt> +<dt><i>filenames</i> (list of str)</dt> <dd> list of filenames (not used) </dd> @@ -1551,7 +1637,7 @@ </p> <dl> -<dt><i>filenames</i></dt> +<dt><i>filenames</i> (list of str)</dt> <dd> list of filenames </dd> @@ -1604,7 +1690,13 @@ <dl> <dt>Return:</dt> <dd> -Django version (string) +Django version +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str </dd> </dl> <a NAME="Project.getMenu" ID="Project.getMenu"></a> @@ -1616,16 +1708,22 @@ </p> <dl> -<dt><i>name</i></dt> +<dt><i>name</i> (str)</dt> <dd> -name of the menu (string) +name of the menu </dd> </dl> <dl> <dt>Return:</dt> <dd> -reference to the menu (QMenu) or None, if no - menu with the given name exists +reference to the menu or None, if no menu with the given + name exists +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +QMenu </dd> </dl> <a NAME="Project.getMenuNames" ID="Project.getMenuNames"></a> @@ -1638,7 +1736,13 @@ <dl> <dt>Return:</dt> <dd> -menu names (list of string) +menu names +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +list of str </dd> </dl> <a NAME="Project.getProjectPath" ID="Project.getProjectPath"></a> @@ -1646,12 +1750,18 @@ <b>getProjectPath</b>(<i></i>) <p> - Public method to get the path of the eric6 project. + Public method to get the path of the eric7 project. </p> <dl> <dt>Return:</dt> <dd> -path of the eric6 project (string) +path of the eric7 project +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +str </dd> </dl> <a NAME="Project.getRecentApplications" ID="Project.getRecentApplications"></a> @@ -1777,9 +1887,9 @@ </p> <dl> -<dt><i>path</i></dt> +<dt><i>path</i> (str)</dt> <dd> -full directory path for the new form file (string) +full directory path for the new form file </dd> </dl> <a NAME="Project.newProjectCreated" ID="Project.newProjectCreated"></a> @@ -1798,9 +1908,9 @@ </p> <dl> -<dt><i>poFile</i></dt> +<dt><i>poFile</i> (str)</dt> <dd> -name of the .po file (string) +name of the .po file </dd> </dl> <a NAME="Project.projectClosed" ID="Project.projectClosed"></a> @@ -1841,9 +1951,9 @@ </p> <dl> -<dt><i>applStr</i></dt> +<dt><i>applStr</i> (str)</dt> <dd> -applications entry (string) +applications entry </dd> </dl> <a NAME="Project.setMostRecentDatabaseNames" ID="Project.setMostRecentDatabaseNames"></a> @@ -1895,7 +2005,13 @@ <dl> <dt>Return:</dt> <dd> -list of supported Python variants (list of strings) +list of supported Python variants +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +list of str </dd> </dl> <a NAME="Project.updateCatalogs" ID="Project.updateCatalogs"></a> @@ -1907,7 +2023,7 @@ </p> <dl> -<dt><i>filenames</i></dt> +<dt><i>filenames</i> (list of str)</dt> <dd> list of filenames (not used) </dd> @@ -1921,7 +2037,7 @@ </p> <dl> -<dt><i>filenames</i></dt> +<dt><i>filenames</i> (list of str)</dt> <dd> list of filenames (not used) </dd> @@ -1935,9 +2051,9 @@ </p> <dl> -<dt><i>filenames</i></dt> +<dt><i>filenames</i> (list of str)</dt> <dd> -list of file names (list of strings) +list of file names </dd> </dl> <a NAME="Project.updateSelectedCatalogsWithObsolete" ID="Project.updateSelectedCatalogsWithObsolete"></a> @@ -1949,7 +2065,7 @@ </p> <dl> -<dt><i>filenames</i></dt> +<dt><i>filenames</i> (list of str)</dt> <dd> list of filenames </dd> @@ -1996,7 +2112,7 @@ <a NAME="QProcess.start" ID="QProcess.start"></a> <h4>QProcess.start</h4> -<b>start</b>(<i>cmd, args=None, mode=QProcessPyQt.ReadWrite</i>) +<b>start</b>(<i>cmd, args=None, mode=QIODeviceBase.OpenModeFlag.ReadWrite</i>) <p> Public method to start the given program (cmd) in a new process, if @@ -2004,17 +2120,17 @@ </p> <dl> -<dt><i>cmd</i></dt> +<dt><i>cmd</i> (str)</dt> <dd> -start the given program cmd (string) +start the given program cmd </dd> -<dt><i>args=</i></dt> +<dt><i>args</i> (list of str)</dt> <dd> -list of parameters (list of strings) +list of parameters </dd> -<dt><i>mode=</i></dt> +<dt><i>mode</i> (QIODeviceBase.OpenMode)</dt> <dd> -access mode (QIODevice.OpenMode) +access mode </dd> </dl> <a NAME="QProcess.startDetached" ID="QProcess.startDetached"></a> @@ -2027,23 +2143,29 @@ </p> <dl> -<dt><i>cmd</i></dt> +<dt><i>cmd</i> (str)</dt> <dd> -start the given program cmd (string) +start the given program cmd </dd> -<dt><i>args=</i></dt> +<dt><i>args</i> (list of str)</dt> <dd> -list of parameters (list of strings) +list of parameters </dd> -<dt><i>path=</i></dt> +<dt><i>path</i> (str)</dt> <dd> -new working directory (string) +new working directory </dd> </dl> <dl> <dt>Return:</dt> <dd> -tuple of successful start and process id (boolean, integer) +tuple of successful start and process id +</dd> +</dl> +<dl> +<dt>Return Type:</dt> +<dd> +tuple of (bool, int) </dd> </dl> <div align="right"><a href="#top">Up</a></div>
--- a/ProjectDjango/Documentation/source/index-Plugin_Project_Django.ProjectDjango.html Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/Documentation/source/index-Plugin_Project_Django.ProjectDjango.html Sat May 29 18:33:03 2021 +0200 @@ -22,7 +22,7 @@ <h1>Plugin_Project_Django.ProjectDjango</h1> <p> -Package implementing project support for eric6 Django projects. +Package implementing project support for eric7 Django projects. </p> <h3>Packages</h3>
--- a/ProjectDjango/Documentation/source/index-Plugin_Project_Django.html Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/Documentation/source/index-Plugin_Project_Django.html Sat May 29 18:33:03 2021 +0200 @@ -30,7 +30,7 @@ <tr> <td><a href="index-Plugin_Project_Django.ProjectDjango.html">ProjectDjango</a></td> -<td>Package implementing project support for eric6 Django projects.</td> +<td>Package implementing project support for eric7 Django projects.</td> </tr> </table>
--- a/ProjectDjango/Project.py Sat May 29 15:03:26 2021 +0200 +++ b/ProjectDjango/Project.py Sat May 29 18:33:03 2021 +0200 @@ -12,14 +12,14 @@ import shutil import contextlib -from PyQt5.QtCore import QObject, QTimer, QUrl, QFileInfo -from PyQt5.QtGui import QDesktopServices -from PyQt5.QtWidgets import QMenu, QInputDialog, QLineEdit, QDialog -from PyQt5.QtCore import QProcess as QProcessPyQt +from PyQt6.QtCore import QObject, QTimer, QUrl, QFileInfo, QIODeviceBase +from PyQt6.QtGui import QDesktopServices +from PyQt6.QtWidgets import QMenu, QInputDialog, QLineEdit, QDialog +from PyQt6.QtCore import QProcess as QProcessPyQt -from E5Gui.E5Application import e5App -from E5Gui import E5MessageBox, E5FileDialog -from E5Gui.E5Action import E5Action +from EricWidgets.EricApplication import ericApp +from EricWidgets import EricMessageBox, EricFileDialog +from EricGui.EricAction import EricAction from Globals import isWindowsPlatform @@ -41,14 +41,17 @@ """ Class transforming the call arguments in case of gnome-terminal. """ - def start(self, cmd, args=None, mode=QProcessPyQt.ReadWrite): + def start(self, cmd, args=None, mode=QIODeviceBase.OpenModeFlag.ReadWrite): """ Public method to start the given program (cmd) in a new process, if none is already running, passing the command line arguments in args. - @param cmd start the given program cmd (string) - @keyparam args list of parameters (list of strings) - @keyparam mode access mode (QIODevice.OpenMode) + @param cmd start the given program cmd + @type str + @param args list of parameters + @type list of str + @param mode access mode + @type QIODeviceBase.OpenMode """ if args is None: args = [] @@ -70,10 +73,14 @@ Public static method to start the given program (cmd) in a new process, if none is already running, passing the command line arguments in args. - @param cmd start the given program cmd (string) - @keyparam args list of parameters (list of strings) - @keyparam path new working directory (string) - @return tuple of successful start and process id (boolean, integer) + @param cmd start the given program cmd + @type str + @param args list of parameters + @type list of str + @param path new working directory + @type str + @return tuple of successful start and process id + @rtype tuple of (bool, int) """ if args is None: args = [] @@ -114,8 +121,8 @@ self.__iconSuffix = iconSuffix self.__ui = parent - self.__e5project = e5App().getObject("Project") - self.__virtualEnvManager = e5App().getObject("VirtualEnvManager") + self.__ericProject = ericApp().getObject("Project") + self.__virtualEnvManager = ericApp().getObject("VirtualEnvManager") self.__hooksInstalled = False self.__menus = {} # dictionary with references to menus @@ -142,7 +149,7 @@ """ self.actions = [] - self.selectSiteAct = E5Action( + self.selectSiteAct = EricAction( self.tr('Current Project'), "", 0, 0, @@ -162,7 +169,7 @@ ## start actions below ## ############################## - self.startProjectAct = E5Action( + self.startProjectAct = EricAction( self.tr('Start Project'), self.tr('Start &Project'), 0, 0, @@ -177,7 +184,7 @@ self.startProjectAct.triggered.connect(self.__startProject) self.actions.append(self.startProjectAct) - self.startGlobalApplicationAct = E5Action( + self.startGlobalApplicationAct = EricAction( self.tr('Start Application (global)'), self.tr('Start Application (&global)'), 0, 0, @@ -193,7 +200,7 @@ self.__startGlobalApplication) self.actions.append(self.startGlobalApplicationAct) - self.startLocalApplicationAct = E5Action( + self.startLocalApplicationAct = EricAction( self.tr('Start Application (local)'), self.tr('Start Application (&local)'), 0, 0, @@ -213,7 +220,7 @@ ## run actions below ## ############################## - self.runServerAct = E5Action( + self.runServerAct = EricAction( self.tr('Run Server'), self.tr('Run &Server'), 0, 0, @@ -228,7 +235,7 @@ self.runServerAct.triggered.connect(self.__runServer) self.actions.append(self.runServerAct) - self.runBrowserAct = E5Action( + self.runBrowserAct = EricAction( self.tr('Run Web-Browser'), self.tr('Run &Web-Browser'), 0, 0, @@ -248,7 +255,7 @@ ## caching actions below ## ############################## - self.createCacheTableAct = E5Action( + self.createCacheTableAct = EricAction( self.tr('Create Cache Tables'), self.tr('C&reate Cache Tables'), 0, 0, @@ -268,7 +275,7 @@ ## help action below ## ############################## - self.helpAct = E5Action( + self.helpAct = EricAction( self.tr('Help'), self.tr('&Help'), 0, 0, @@ -286,7 +293,7 @@ ## about action below ## ############################## - self.aboutDjangoAct = E5Action( + self.aboutDjangoAct = EricAction( self.tr('About Django'), self.tr('About D&jango'), 0, 0, @@ -304,7 +311,7 @@ ## check action below ## ############################## - self.checkAct = E5Action( + self.checkAct = EricAction( self.tr('Check Project'), self.tr('Check Project'), 0, 0, @@ -330,7 +337,7 @@ """ Private method to define the database related actions. """ - self.selectDatabaseNameAct = E5Action( + self.selectDatabaseNameAct = EricAction( self.tr('Current Database'), "", 0, 0, @@ -347,7 +354,7 @@ self.actions.append(self.selectDatabaseNameAct) self.__setCurrentDatabase(None) - self.inspectDatabaseAct = E5Action( + self.inspectDatabaseAct = EricAction( self.tr('Introspect'), self.tr('&Introspect'), 0, 0, @@ -363,7 +370,7 @@ self.inspectDatabaseAct.triggered.connect(self.__databaseInspect) self.actions.append(self.inspectDatabaseAct) - self.flushDatabaseAct = E5Action( + self.flushDatabaseAct = EricAction( self.tr('Flush'), self.tr('&Flush'), 0, 0, @@ -379,7 +386,7 @@ self.flushDatabaseAct.triggered.connect(self.__databaseFlush) self.actions.append(self.flushDatabaseAct) - self.databaseClientAct = E5Action( + self.databaseClientAct = EricAction( self.tr('Start Client Console'), self.tr('Start &Client Console'), 0, 0, @@ -397,7 +404,7 @@ """ Private method to define the database SQL related actions. """ - self.databaseSqlFlushAct = E5Action( + self.databaseSqlFlushAct = EricAction( self.tr('Flush Database'), self.tr('&Flush Database'), 0, 0, @@ -414,7 +421,7 @@ self.__databaseSqlFlushDatabase) self.actions.append(self.databaseSqlFlushAct) - self.databaseSqlResetSeqAct = E5Action( + self.databaseSqlResetSeqAct = EricAction( self.tr('Reset Sequences'), self.tr('Reset &Sequences'), 0, 0, @@ -431,7 +438,7 @@ self.__databaseSqlResetSequences) self.actions.append(self.databaseSqlResetSeqAct) - self.databaseSqlMigrateAct = E5Action( + self.databaseSqlMigrateAct = EricAction( self.tr('Apply Migration'), self.tr('&Apply Migration'), 0, 0, @@ -448,7 +455,7 @@ self.__databaseSqlMigrate) self.actions.append(self.databaseSqlMigrateAct) - self.databaseSqlMigrateBackwardsAct = E5Action( + self.databaseSqlMigrateBackwardsAct = EricAction( self.tr('Unapply Migration'), self.tr('&Unapply Migration'), 0, 0, @@ -469,7 +476,7 @@ """ Private method to define the tool actions. """ - self.diffSettingsAct = E5Action( + self.diffSettingsAct = EricAction( self.tr('Diff Settings'), self.tr('&Diff Settings'), 0, 0, @@ -483,7 +490,7 @@ self.diffSettingsAct.triggered.connect(self.__diffSettings) self.actions.append(self.diffSettingsAct) - self.runPythonShellAct = E5Action( + self.runPythonShellAct = EricAction( self.tr('Start Python Console'), self.tr('Start &Python Console'), 0, 0, @@ -497,7 +504,7 @@ self.runPythonShellAct.triggered.connect(self.__runPythonShell) self.actions.append(self.runPythonShellAct) - self.testEmailAct = E5Action( + self.testEmailAct = EricAction( self.tr('Send Test Email'), self.tr('Send Test &Email'), 0, 0, @@ -516,7 +523,7 @@ """ Private method to define the testing actions. """ - self.dumpDataAct = E5Action( + self.dumpDataAct = EricAction( self.tr('Dump Data'), self.tr('&Dump Data'), 0, 0, @@ -530,7 +537,7 @@ self.dumpDataAct.triggered.connect(self.__dumpData) self.actions.append(self.dumpDataAct) - self.loadDataAct = E5Action( + self.loadDataAct = EricAction( self.tr('Load Data'), self.tr('&Load Data'), 0, 0, @@ -544,7 +551,7 @@ self.loadDataAct.triggered.connect(self.__loadData) self.actions.append(self.loadDataAct) - self.runTestAct = E5Action( + self.runTestAct = EricAction( self.tr('Run Testsuite'), self.tr('Run &Testsuite'), 0, 0, @@ -558,7 +565,7 @@ self.runTestAct.triggered.connect(self.__runTestSuite) self.actions.append(self.runTestAct) - self.runDeprecationTestAct = E5Action( + self.runDeprecationTestAct = EricAction( self.tr('Run Testsuite (-Wall)'), self.tr('Run Testsuite (-Wall)'), 0, 0, @@ -575,7 +582,7 @@ lambda: self.__runTestSuite(deprecation=True)) self.actions.append(self.runDeprecationTestAct) - self.runTestServerAct = E5Action( + self.runTestServerAct = EricAction( self.tr('Run Testserver'), self.tr('Run Test&server'), 0, 0, @@ -594,7 +601,7 @@ """ Private method to define the authorization actions. """ - self.changePasswordAct = E5Action( + self.changePasswordAct = EricAction( self.tr('Change Password'), self.tr('Change &Password'), 0, 0, @@ -608,7 +615,7 @@ self.changePasswordAct.triggered.connect(self.__changePassword) self.actions.append(self.changePasswordAct) - self.createSuperUserAct = E5Action( + self.createSuperUserAct = EricAction( self.tr('Create Superuser'), self.tr('Create &Superuser'), 0, 0, @@ -626,7 +633,7 @@ """ Private method to define the session actions. """ - self.clearSessionsAct = E5Action( + self.clearSessionsAct = EricAction( self.tr('Clear Sessions'), self.tr('Clear &Sessions'), 0, 0, @@ -644,7 +651,7 @@ """ Private method to define the migration actions. """ - self.showMigrationsAct = E5Action( + self.showMigrationsAct = EricAction( self.tr('Show Migrations'), self.tr('&Show Migrations'), 0, 0, @@ -659,7 +666,7 @@ self.showMigrationsAct.triggered.connect(self.__showMigrationsList) self.actions.append(self.showMigrationsAct) - self.showMigrationsPlanAct = E5Action( + self.showMigrationsPlanAct = EricAction( self.tr('Show Migrations Plan'), self.tr('Show Migrations &Plan'), 0, 0, @@ -674,7 +681,7 @@ self.showMigrationsPlanAct.triggered.connect(self.__showMigrationsPlan) self.actions.append(self.showMigrationsPlanAct) - self.migrateAllAct = E5Action( + self.migrateAllAct = EricAction( self.tr('Apply All Migrations'), self.tr('&Apply All Migrations'), 0, 0, @@ -688,7 +695,7 @@ self.migrateAllAct.triggered.connect(self.__applyAllMigrations) self.actions.append(self.migrateAllAct) - self.migrateSelectedAct = E5Action( + self.migrateSelectedAct = EricAction( self.tr('Apply Selected Migrations'), self.tr('Apply Selected Migrations'), 0, 0, @@ -704,7 +711,7 @@ self.__applySelectedMigrations) self.actions.append(self.migrateSelectedAct) - self.unmigrateAct = E5Action( + self.unmigrateAct = EricAction( self.tr('Unapply Migrations'), self.tr('&Unapply Migrations'), 0, 0, @@ -719,7 +726,7 @@ self.unmigrateAct.triggered.connect(self.__unapplyMigrations) self.actions.append(self.unmigrateAct) - self.makeMigrationsAct = E5Action( + self.makeMigrationsAct = EricAction( self.tr('Make Migrations'), self.tr('&Make Migrations'), 0, 0, @@ -733,7 +740,7 @@ self.makeMigrationsAct.triggered.connect(self.__makeMigrations) self.actions.append(self.makeMigrationsAct) - self.squashMigrationsAct = E5Action( + self.squashMigrationsAct = EricAction( self.tr('Squash Migrations'), self.tr('S&quash Migrations'), 0, 0, @@ -939,9 +946,11 @@ """ Public method to get a reference to the requested menu. - @param name name of the menu (string) - @return reference to the menu (QMenu) or None, if no - menu with the given name exists + @param name name of the menu + @type str + @return reference to the menu or None, if no menu with the given + name exists + @rtype QMenu """ if name in self.__menus: return self.__menus[name] @@ -952,7 +961,8 @@ """ Public method to get the names of all menus. - @return menu names (list of string) + @return menu names + @rtype list of str """ return list(self.__menus.keys()) @@ -980,18 +990,19 @@ """ Public method to add our hook methods. """ - if self.__e5project.getProjectType() == "Django": + if self.__ericProject.getProjectType() == "Django": self.__formsBrowser = ( - e5App().getObject("ProjectBrowser").getProjectBrowser("forms") + ericApp().getObject("ProjectBrowser") + .getProjectBrowser("forms") ) self.__formsBrowser.addHookMethodAndMenuEntry( "newForm", self.newForm, self.tr("New template...")) - self.__e5project.projectLanguageAddedByCode.connect( + self.__ericProject.projectLanguageAddedByCode.connect( self.__projectLanguageAdded) self.__translationsBrowser = ( - e5App().getObject("ProjectBrowser") + ericApp().getObject("ProjectBrowser") .getProjectBrowser("translations")) self.__translationsBrowser.addHookMethodAndMenuEntry( "generateAll", @@ -1027,7 +1038,7 @@ self.__formsBrowser.removeHookMethod("newForm") self.__formsBrowser = None - self.__e5project.projectLanguageAddedByCode.disconnect( + self.__ericProject.projectLanguageAddedByCode.disconnect( self.__projectLanguageAdded) self.__translationsBrowser.removeHookMethod( "generateAll") @@ -1050,15 +1061,16 @@ """ Public method to create a new form. - @param path full directory path for the new form file (string) + @param path full directory path for the new form file + @type str """ - fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( + fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter( self.__ui, self.tr("New Form"), path, filter, None, - E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) + EricFileDialog.DontConfirmOverwrite) if not fname: # user aborted or didn't enter a filename @@ -1071,11 +1083,11 @@ fname += ex if os.path.exists(fname): - res = E5MessageBox.yesNo( + res = EricMessageBox.yesNo( self.__ui, self.tr("New Form"), self.tr("The file already exists! Overwrite it?"), - icon=E5MessageBox.Warning) + icon=EricMessageBox.Warning) if not res: # user selected to not overwrite @@ -1103,7 +1115,7 @@ f.close() f.write('</html>\n') except OSError as e: - E5MessageBox.critical( + EricMessageBox.critical( self.__ui, self.tr("New Form"), self.tr("<p>The new form file <b>{0}</b> could not be" @@ -1111,7 +1123,7 @@ .format(fname, str(e))) return - self.__e5project.appendFile(fname) + self.__ericProject.appendFile(fname) self.__formsBrowser.sourceFile.emit(fname) ################################################################## @@ -1131,10 +1143,12 @@ Private method to build all full paths of an executable file from the environment. - @param file filename of the executable (string) + @param file filename of the executable + @type str @return list of full executable names, if the executable file is accessible via the searchpath defined by the PATH environment variable, or an empty list otherwise. + @rtype list of str """ paths = [] @@ -1164,7 +1178,8 @@ """ Public method to get the supported Python variants. - @return list of supported Python variants (list of strings) + @return list of supported Python variants + @rtype list of str """ variants = [] for variant in ['Python3']: @@ -1219,11 +1234,13 @@ Private method to get the path of the virtual environment. @param language Python variant to get the virtual environment - for (string, one of '' or 'Python3') - @return path of the virtual environment (string) + for (one of '' or 'Python3') + @type str + @return path of the virtual environment + @rtype str """ if not language: - language = self.__e5project.getProjectLanguage() + language = self.__ericProject.getProjectLanguage() venvName = ( self.__plugin.getPreferences("VirtualEnvironmentNamePy3") if language == "Python3" else @@ -1249,11 +1266,13 @@ Private method to get the path of the debugger environment. @param language Python variant to get the debugger environment - for (string, one of '' or 'Python3') - @return path of the debugger environment (string) + for (one of '' or 'Python3') + @type str + @return path of the debugger environment + @rtype str """ if not language: - language = self.__e5project.getProjectLanguage() + language = self.__ericProject.getProjectLanguage() debugEnv = self.__getVirtualEnvironment(language) if not debugEnv: if language == "Python3": @@ -1273,11 +1292,13 @@ Private method to build a django-admin.py command. @param language Python variant to get the django-admin.py - command for (string, one of '' or 'Python3') - @return full django-admin.py command (string) + command for (one of '' or 'Python3') + @type str + @return full django-admin.py command + @rtype str """ if not language: - language = self.__e5project.getProjectLanguage() + language = self.__ericProject.getProjectLanguage() virtualEnv = self.__getVirtualEnvironment(language) if virtualEnv: @@ -1321,9 +1342,9 @@ else: if language == "Python3": cmds = ["django-admin3.py", "django-admin3", + "django-admin.py-3.10", + "django-admin.py-3.9", "django-admin.py-3.8", "django-admin.py-3.7", "django-admin.py-3.6", - "django-admin.py-3.5", "django-admin.py-3.4", - "django-admin.py-3.3", "django-admin.py-3.2", ] else: cmds = [] @@ -1340,9 +1361,10 @@ """ Private method to build the Python command. - @return python command (string) + @return python command + @rtype str """ - language = self.__e5project.getProjectLanguage() + language = self.__ericProject.getProjectLanguage() if language == "Python3": venvName = self.__plugin.getPreferences( "VirtualEnvironmentNamePy3") @@ -1366,8 +1388,8 @@ version = self.getDjangoVersionString() url = "https://www.djangoproject.com" - msgBox = E5MessageBox.E5MessageBox( - E5MessageBox.Question, + msgBox = EricMessageBox.EricMessageBox( + EricMessageBox.Question, self.tr("About Django"), self.tr( "<p>Django is a high-level Python Web framework that" @@ -1380,7 +1402,7 @@ "</table></p>" ).format(version, url), modal=True, - buttons=E5MessageBox.Ok) + buttons=EricMessageBox.Ok) msgBox.setIconPixmap(UI.PixmapCache.getPixmap( os.path.join("ProjectDjango", "icons", "django64-{0}".format(self.__iconSuffix)))) @@ -1390,7 +1412,8 @@ """ Public method to get the Django version as a string. - @return Django version (string) + @return Django version + @rtype str """ djangoVersion = "" @@ -1436,7 +1459,8 @@ """ Private method to ask the user for a list of application names. - @return list of application names (list of strings) + @return list of application names + @rtype list of str """ applStr, ok = QInputDialog.getItem( self.__ui, @@ -1482,7 +1506,8 @@ """ Public method to set the most recently used applications entry. - @param applStr applications entry (string) + @param applStr applications entry + @type str """ if applStr in self.__recentApplications: self.__recentApplications.remove(applStr) @@ -1554,11 +1579,12 @@ def getProjectPath(self): """ - Public method to get the path of the eric6 project. + Public method to get the path of the eric7 project. - @return path of the eric6 project (string) + @return path of the eric7 project + @rtype str """ - return self.__e5project.getProjectPath() + return self.__ericProject.getProjectPath() def __showHelpIndex(self): """ @@ -1572,10 +1598,11 @@ """ Private method to check, if the given console is a spawning console. - @param consoleCmd console command (string) + @param consoleCmd console command + @type str @return tuple of two entries giving an indication, if the console - is spawning (boolean) and the (possibly) cleaned console command - (string) + is spawning and the (possibly) cleaned console command + @rtype tuple of (bool, str) """ if consoleCmd and consoleCmd[0] == '@': return (True, consoleCmd[1:]) @@ -1608,20 +1635,20 @@ """ Public slot to finish up the newly generated project. """ - if self.__e5project.getProjectType() == "Django": - ppath = self.__e5project.getProjectPath() + if self.__ericProject.getProjectType() == "Django": + ppath = self.__ericProject.getProjectPath() # get rid of an __init__.py file because it would be in our way initModule = os.path.join(ppath, "__init__.py") if os.path.exists(initModule): - self.__e5project.deleteFile("__init__.py") - self.__e5project.saveProject() + self.__ericProject.deleteFile("__init__.py") + self.__ericProject.saveProject() def startProjectOrApplication(self): """ Public slot to start a new Django project or application. """ - if self.__e5project.getProjectType() == "Django": + if self.__ericProject.getProjectType() == "Django": projectStr = self.tr("Project") applStr = self.tr("Application") selections = ["", projectStr, applStr] @@ -1636,35 +1663,37 @@ if ok and bool(selection): if selection == projectStr: path, projectName = os.path.split( - self.__e5project.getProjectPath()) + self.__ericProject.getProjectPath()) self.__createProject(projectName, path) elif selection == applStr: path, applName = os.path.split( - self.__e5project.getProjectPath()) + self.__ericProject.getProjectPath()) self.__createApplication(applName, path) def __createProject(self, projectName, path): """ Private slot to create a new Django project. - @param projectName name of the new project (string) + @param projectName name of the new project + @type str @param path the directory where the project should be created - (string) - @return flag indicating a successful creation (boolean) + @type str + @return flag indicating a successful creation + @rtype bool """ title = self.tr("Start Django Project") # remove the project directory if it exists already ppath = os.path.join(path, projectName) if os.path.exists(ppath): - okToRemove = E5MessageBox.yesNo( + okToRemove = EricMessageBox.yesNo( self.__ui, title, self.tr("""<p>The Django project path <b>{0}</b> exists""" """ already. Shall it be removed and recreated?""" """</p>""").format(ppath)) if not okToRemove: - E5MessageBox.information( + EricMessageBox.information( self.__ui, title, self.tr("""<p>Please add the files to the eric project""" @@ -1680,7 +1709,7 @@ args.append(self.__getPythonExecutable()) args.append(cmd) else: - E5MessageBox.critical( + EricMessageBox.critical( self.__ui, title, self.tr("""<p>The <b>django-admin.py</b> script is""" @@ -1704,7 +1733,7 @@ if ( os.path.join(path, projectName) == - self.__e5project.getProjectPath() + self.__ericProject.getProjectPath() ): self.__setCurrentSite("") else: @@ -1720,29 +1749,31 @@ self.__ui, self.tr("Start Django Project"), self.tr("Enter the name of the new Django project."), - QLineEdit.Normal) + QLineEdit.EchoMode.Normal) if ok and projectName != "": res = self.__createProject(projectName, - self.__e5project.getProjectPath()) + self.__ericProject.getProjectPath()) if res: # search for new files and add them to the project - sitePath = os.path.join(self.__e5project.getProjectPath(), + sitePath = os.path.join(self.__ericProject.getProjectPath(), projectName) for entry in os.walk(sitePath): for fileName in entry[2]: fullName = os.path.join(entry[0], fileName) - self.__e5project.appendFile(fullName) + self.__ericProject.appendFile(fullName) def __createApplication(self, applName, path, isGlobal=True): """ Private slot to create a new Django application. - @param applName name of the new application (string) + @param applName name of the new application + @type str @param path the directory where the application should be created - (string) + @type str @param isGlobal flag indicating a standalone Django application - (boolean) - @return flag indicating a successful creation (boolean) + @type bool + @return flag indicating a successful creation + @rtype bool """ title = self.tr("Start Django Application") @@ -1759,7 +1790,7 @@ args.append(self.__getPythonExecutable()) args.append(cmd) else: - E5MessageBox.critical( + EricMessageBox.critical( self.__ui, title, self.tr("""<p>The <b>django-admin.py</b> script""" @@ -1793,18 +1824,18 @@ self.tr("Start Global Django Application"), self.tr("Enter the name of the new global Django" " application."), - QLineEdit.Normal) + QLineEdit.EchoMode.Normal) if ok and applName != "": res = self.__createApplication(applName, - self.__e5project.getProjectPath()) + self.__ericProject.getProjectPath()) if res: # search for new files and add them to the project - appPath = os.path.join(self.__e5project.getProjectPath(), + appPath = os.path.join(self.__ericProject.getProjectPath(), applName) for entry in os.walk(appPath): for fileName in entry[2]: fullName = os.path.join(entry[0], fileName) - self.__e5project.appendFile(fullName) + self.__ericProject.appendFile(fullName) def __startLocalApplication(self): """ @@ -1814,7 +1845,7 @@ self.__ui, self.tr("Start Local Django Application"), self.tr("Enter the name of the new local Django application."), - QLineEdit.Normal) + QLineEdit.EchoMode.Normal) if ok and applName != "": res = self.__createApplication(applName, "", False) if res: @@ -1824,7 +1855,7 @@ for entry in os.walk(appPath): for fileName in entry[2]: fullName = os.path.join(entry[0], fileName) - self.__e5project.appendFile(fullName) + self.__ericProject.appendFile(fullName) except DjangoNoSiteSelectedException: return @@ -1836,10 +1867,11 @@ """ Private method to determine the relative path to all manage.py scripts. - @return list of sites (list of strings) + @return list of sites + @rtype list of str """ sites = [] - for file in sorted(self.__e5project.getSources()): + for file in sorted(self.__ericProject.getSources()): if os.path.basename(file) == "manage.py": sites.append(os.path.dirname(file)) return sites @@ -1873,8 +1905,9 @@ """ Private method to calculate the full path of the Django site. + @return path of the site + @rtype str @exception DjangoNoSiteSelectedException raised, if no site is selected - @return path of the site (string) """ if self.__currentSite is None: self.__selectSite() @@ -1882,7 +1915,7 @@ if self.__currentSite is None: raise DjangoNoSiteSelectedException else: - path = os.path.join(self.__e5project.getProjectPath(), + path = os.path.join(self.__ericProject.getProjectPath(), self.__currentSite) return path @@ -1890,7 +1923,8 @@ """ Private slot to set the current site. - @param site name of the site (string) + @param site name of the site + @type str """ self.__currentSite = site if self.__currentSite is None: @@ -1903,9 +1937,9 @@ self.tr('&Current Django project ({0})').format(curSite)) if self.__currentSite is None: - self.__e5project.setTranslationPattern("") + self.__ericProject.setTranslationPattern("") else: - self.__e5project.setTranslationPattern( + self.__ericProject.setTranslationPattern( os.path.join(site, "locale", "%language%", "LC_MESSAGES", "django.po") ) @@ -1914,8 +1948,9 @@ """ Private method to get the name of the current site. + @return name of the site + @rtype str @exception DjangoNoSiteSelectedException raised, if no site is selected - @return name of the site (string) """ if self.__currentSite is None: self.__selectSite() @@ -1964,7 +1999,7 @@ self.__serverProc.start(args[0], args[1:]) serverProcStarted = self.__serverProc.waitForStarted() if not serverProcStarted: - E5MessageBox.critical( + EricMessageBox.critical( None, self.tr('Process Generation Error'), self.tr('The Django server could not be started.')) @@ -1975,7 +2010,7 @@ """ if ( self.__serverProc is not None and - self.__serverProc.state() != QProcess.NotRunning + self.__serverProc.state() != QProcess.ProcessState.NotRunning ): self.__serverProc.terminate() QTimer.singleShot(2000, self.__serverProc.kill) @@ -2010,7 +2045,7 @@ if self.__plugin.getPreferences("UseExternalBrowser"): res = QDesktopServices.openUrl(QUrl(url)) if not res: - E5MessageBox.critical( + EricMessageBox.critical( None, self.tr('Run Web-Browser'), self.tr('Could not start the web-browser for the' @@ -2154,7 +2189,7 @@ title = self.tr("Flush Database") - res = E5MessageBox.yesNo( + res = EricMessageBox.yesNo( self.__ui, title, self.tr("""Flushing the database will destroy all data.""" @@ -2195,7 +2230,7 @@ self.__adjustWorkingDirectory(args, wd) started, pid = QProcess.startDetached(args[0], args[1:], wd) if not started: - E5MessageBox.critical( + EricMessageBox.critical( None, self.tr('Process Generation Error'), self.tr('The Django process could not be started.')) @@ -2208,10 +2243,13 @@ """ Private method to perform an SQL creation function. - @param title dialog title (string) - @param command Django sql... command (string) + @param title dialog title + @type str + @param command Django sql... command + @type str @param requestApps flag indicating to request a list of applications - to work on (boolean) + to work on + @type bool """ try: path = self.__sitePath() @@ -2260,7 +2298,7 @@ Private slot to print the SQL statements for a migration of an application. - @param backwards flag indicating to generate the SQL code to unapply + @param backwards flag indicating to generate the SQL code to revert a migration @type bool """ @@ -2271,7 +2309,7 @@ migrations = self.__getMigrations() if not migrations: - E5MessageBox.information( + EricMessageBox.information( None, self.tr("SQL Migrate"), self.tr("""No migrations available.""")) @@ -2285,7 +2323,7 @@ dlg = DjangoMigrationSelectionDialog(migrations, migrationRequired=True, suffix=self.__iconSuffix) - if dlg.exec() == QDialog.Accepted: + if dlg.exec() == QDialog.DialogCode.Accepted: app, migration = dlg.getData() args = [] @@ -2355,7 +2393,7 @@ """ migrations = self.__getMigrations() if not migrations: - E5MessageBox.information( + EricMessageBox.information( None, self.tr("Apply Selected Migrations"), self.tr("""No migrations available.""")) @@ -2366,7 +2404,7 @@ ) dlg = DjangoMigrationSelectionDialog(migrations, suffix=self.__iconSuffix) - if dlg.exec() == QDialog.Accepted: + if dlg.exec() == QDialog.DialogCode.Accepted: app, migration = dlg.getData() self.applyMigrations(app=app, migration=migration) @@ -2407,11 +2445,11 @@ def __unapplyMigrations(self): """ - Private slot to un-apply all migrations of an application. + Private slot to revert all migrations of an application. """ apps = list(sorted(self.__getMigrations().keys())) if not apps: - E5MessageBox.information( + EricMessageBox.information( None, self.tr("Unapply Migrations"), self.tr("""No migrations available.""")) @@ -2476,7 +2514,7 @@ """ from .DjangoMakeMigrationsDialog import DjangoMakeMigrationsDialog dlg = DjangoMakeMigrationsDialog(self.getRecentApplications()) - if dlg.exec() == QDialog.Accepted: + if dlg.exec() == QDialog.DialogCode.Accepted: apps, migration, dryRun, empty, merge = dlg.getData() if apps: self.setMostRecentApplication(apps) @@ -2533,7 +2571,7 @@ """ migrations = self.__getMigrations() if not migrations: - E5MessageBox.information( + EricMessageBox.information( None, self.tr("Squash Migrations"), self.tr("""No migrations available.""")) @@ -2544,7 +2582,7 @@ ) dlg = DjangoSquashMigrationSelectionDialog( migrations, self, self.__iconSuffix) - if dlg.exec() == QDialog.Accepted: + if dlg.exec() == QDialog.DialogCode.Accepted: app, start, end, noOptimize, name = dlg.getData() title = self.tr("Squash Migrations") @@ -2585,7 +2623,7 @@ from .DjangoDiffsettingsDataDialog import DjangoDiffsettingsDataDialog dlg = DjangoDiffsettingsDataDialog(self, self.__ui) - if dlg.exec() == QDialog.Accepted: + if dlg.exec() == QDialog.DialogCode.Accepted: showAll, defaultModule, outputFormat = dlg.getData() args = [] @@ -2628,7 +2666,7 @@ self.__adjustWorkingDirectory(args, wd) started, pid = QProcess.startDetached(args[0], args[1:], wd) if not started: - E5MessageBox.critical( + EricMessageBox.critical( None, self.tr('Process Generation Error'), self.tr('The Django process could not be started.')) @@ -2643,7 +2681,7 @@ DjangoSendTestEmailDataDialog ) dlg = DjangoSendTestEmailDataDialog(self.__ui) - if dlg.exec() == QDialog.Accepted: + if dlg.exec() == QDialog.DialogCode.Accepted: managers, admins, recipients = dlg.getData() args = [] @@ -2717,7 +2755,7 @@ from .DjangoDumpdataDataDialog import DjangoDumpdataDataDialog dlg = DjangoDumpdataDataDialog(self, self.__ui) - if dlg.exec() == QDialog.Accepted: + if dlg.exec() == QDialog.DialogCode.Accepted: appls, excls, dumpFormat, indent = dlg.getData() args = [] @@ -2758,7 +2796,7 @@ from .DjangoLoaddataDataDialog import DjangoLoaddataDataDialog dlg = DjangoLoaddataDataDialog(self, self.__ui) - if dlg.exec() == QDialog.Accepted: + if dlg.exec() == QDialog.DialogCode.Accepted: fixtures, excludes, appLabel, ignore = dlg.getData() args = [] @@ -2799,7 +2837,7 @@ dlg = DjangoTestDataDialog( self, self.__plugin.getPreferences("KeepTestDatabase"), self.__ui) - if dlg.exec() == QDialog.Accepted: + if dlg.exec() == QDialog.DialogCode.Accepted: labels, pattern, tags, excludeTags, keep, reverse = ( dlg.getData()) @@ -2827,7 +2865,7 @@ self.__adjustWorkingDirectory(args, wd) started, pid = QProcess.startDetached(args[0], args[1:], wd) if not started: - E5MessageBox.critical( + EricMessageBox.critical( None, self.tr('Process Generation Error'), self.tr('The Django process could not be started.')) @@ -2844,7 +2882,7 @@ DjangoRunTestServerDataDialog ) dlg = DjangoRunTestServerDataDialog(self, self.__ui) - if dlg.exec() == QDialog.Accepted: + if dlg.exec() == QDialog.DialogCode.Accepted: fixtures = dlg.getData() args = Utilities.parseOptionString(consoleCmd) @@ -2876,7 +2914,7 @@ serverProcStarted = ( self.__testServerProc.waitForStarted()) if not serverProcStarted: - E5MessageBox.critical( + EricMessageBox.critical( None, self.tr('Process Generation Error'), self.tr('The Django test server could not be' @@ -2888,7 +2926,7 @@ """ if ( self.__testServerProc is not None and - self.__testServerProc.state() != QProcess.NotRunning + self.__testServerProc.state() != QProcess.ProcessState.NotRunning ): self.__testServerProc.terminate() QTimer.singleShot(2000, self.__testServerProc.kill) @@ -2910,7 +2948,7 @@ self.__ui, self.tr("Change Password"), self.tr("Enter the name of the user:"), - QLineEdit.Normal) + QLineEdit.EchoMode.Normal) if ok and userName != "": args = Utilities.parseOptionString(consoleCmd) args[0] = Utilities.getExecutablePath(args[0]) @@ -2924,7 +2962,7 @@ started, pid = QProcess.startDetached( args[0], args[1:], wd) if not started: - E5MessageBox.critical( + EricMessageBox.critical( None, self.tr('Process Generation Error'), self.tr('The Django process could not be' @@ -2947,7 +2985,7 @@ self.__adjustWorkingDirectory(args, wd) started, pid = QProcess.startDetached(args[0], args[1:], wd) if not started: - E5MessageBox.critical( + EricMessageBox.critical( None, self.tr('Process Generation Error'), self.tr('The Django process could not be started.')) @@ -2987,12 +3025,14 @@ """ Private method to extract the locale out of a file name. - @param filename name of the file used for extraction (string) - @return extracted locale (string) or None + @param filename name of the file used for extraction + @type str + @return extracted locale or None + @rtype str """ - if self.__e5project.getTranslationPattern(): + if self.__ericProject.getTranslationPattern(): pattern = ( - self.__e5project.getTranslationPattern() + self.__ericProject.getTranslationPattern() .replace("%language%", "(.*?)") ) match = re.search(pattern, filename) @@ -3010,8 +3050,10 @@ """ Private method to normalize a list of file names. - @param filenames list of file names to normalize (list of strings) - @return normalized file names (list of strings) + @param filenames list of file names to normalize + @type list of str + @return normalized file names + @rtype list of str """ nfilenames = [] for filename in filenames: @@ -3026,8 +3068,10 @@ """ Private method to filter a list of file names by site. - @param filenames list of file names to be filtered (list of strings) - @return file names belonging to the current site (list of strings) + @param filenames list of file names to be filtered + @type list of str + @return file names belonging to the current site + @rtype list of str """ site = self.__site() nfilenames = [] @@ -3041,7 +3085,8 @@ """ Private slot handling the addition of a new language. - @param code language code of the new language (string) + @param code language code of the new language + @type str """ title = ( self.tr("Initializing message catalog for '{0}'") @@ -3057,7 +3102,7 @@ try: wd = self.__sitePath() except DjangoNoSiteSelectedException: - E5MessageBox.warning( + EricMessageBox.warning( None, title, self.tr('No current site selected or no site created yet.' @@ -3073,23 +3118,24 @@ dia.exec() langFile = ( - self.__e5project.getTranslationPattern() + self.__ericProject.getTranslationPattern() .replace("%language%", code) ) - self.__e5project.appendFile(langFile) + self.__ericProject.appendFile(langFile) def updateSelectedCatalogs(self, filenames): """ Public method to update the message catalogs. - @param filenames list of file names (list of strings) + @param filenames list of file names + @type list of str """ title = self.tr("Updating message catalogs") try: wd = self.__sitePath() except DjangoNoSiteSelectedException: - E5MessageBox.warning( + EricMessageBox.warning( None, title, self.tr('No current site selected or no site created yet.' @@ -3111,7 +3157,7 @@ argsLists.append(args) if len(argsLists) == 0: - E5MessageBox.warning( + EricMessageBox.warning( None, title, self.tr('No locales detected. Aborting...')) @@ -3129,6 +3175,7 @@ Public method to update the message catalogs keeping obsolete messages. @param filenames list of filenames + @type list of str """ title = self.tr("Updating message catalogs (keeping obsolete" " messages)") @@ -3136,7 +3183,7 @@ try: wd = self.__sitePath() except DjangoNoSiteSelectedException: - E5MessageBox.warning( + EricMessageBox.warning( None, title, self.tr('No current site selected or no site created yet.' @@ -3157,7 +3204,7 @@ argsLists.append(args) if len(argsLists) == 0: - E5MessageBox.warning( + EricMessageBox.warning( None, title, self.tr('No locales detected. Aborting...')) @@ -3175,6 +3222,7 @@ Public method to update the message catalogs. @param filenames list of filenames (not used) + @type list of str """ title = self.tr("Updating message catalogs") @@ -3188,7 +3236,7 @@ try: wd = self.__sitePath() except DjangoNoSiteSelectedException: - E5MessageBox.warning( + EricMessageBox.warning( None, title, self.tr('No current site selected or no site created yet.' @@ -3207,6 +3255,7 @@ Public method to update the message catalogs keeping obsolete messages. @param filenames list of filenames (not used) + @type list of str """ title = self.tr("Updating message catalogs (keeping obsolete" " messages)") @@ -3220,7 +3269,7 @@ try: wd = self.__sitePath() except DjangoNoSiteSelectedException: - E5MessageBox.warning( + EricMessageBox.warning( None, title, self.tr('No current site selected or no site created yet.' @@ -3239,13 +3288,14 @@ Public method to update the message catalogs. @param filenames list of filenames + @type list of str """ title = self.tr("Compiling message catalogs") try: wd = self.__sitePath() except DjangoNoSiteSelectedException: - E5MessageBox.warning( + EricMessageBox.warning( None, title, self.tr('No current site selected or no site created yet.' @@ -3268,7 +3318,7 @@ argsLists.append(args) if len(argsLists) == 0: - E5MessageBox.warning( + EricMessageBox.warning( None, title, self.tr('No locales detected. Aborting...')) @@ -3286,13 +3336,14 @@ for fileName in entry[2]: fullName = os.path.join(entry[0], fileName) if fullName.endswith('.mo'): - self.__e5project.appendFile(fullName) + self.__ericProject.appendFile(fullName) def compileCatalogs(self, filenames): """ Public method to compile the message catalogs. @param filenames list of filenames (not used) + @type list of str """ title = self.tr("Compiling message catalogs") @@ -3306,7 +3357,7 @@ try: wd = self.__sitePath() except DjangoNoSiteSelectedException: - E5MessageBox.warning( + EricMessageBox.warning( None, title, self.tr('No current site selected or no site created yet.' @@ -3325,13 +3376,14 @@ for fileName in entry[2]: fullName = os.path.join(entry[0], fileName) if fullName.endswith('.mo'): - self.__e5project.appendFile(fullName) + self.__ericProject.appendFile(fullName) def openPOEditor(self, poFile): """ Public method to edit the given file in an external .po editor. - @param poFile name of the .po file (string) + @param poFile name of the .po file + @type str """ editor = self.__plugin.getPreferences("TranslationsEditor") if poFile.endswith(".po") and editor: @@ -3341,7 +3393,7 @@ wd = "" started, pid = QProcess.startDetached(editor, [poFile], wd) if not started: - E5MessageBox.critical( + EricMessageBox.critical( None, self.tr('Process Generation Error'), self.tr('The translations editor process ({0}) could' @@ -3366,7 +3418,7 @@ self.__getPythonExecutable(), path, self.getRecentApplications(), self.__plugin.getPreferences("CheckDeployMode"), ) - if dlg.exec() == QDialog.Accepted: + if dlg.exec() == QDialog.DialogCode.Accepted: deploy, tags, appsStr, settingsFile = dlg.getData() self.__plugin.setPreferences("CheckDeployMode", deploy) if appsStr != "":