eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py

branch
eric7
changeset 8356
68ec9c3d4de5
parent 8322
b422b4e77d19
child 8358
144a6b854f70
equal deleted inserted replaced
8355:8a7677a63c8d 8356:68ec9c3d4de5
14 from PyQt6.QtWidgets import ( 14 from PyQt6.QtWidgets import (
15 QDialog, QDialogButtonBox, QTreeWidgetItem, QListWidgetItem 15 QDialog, QDialogButtonBox, QTreeWidgetItem, QListWidgetItem
16 ) 16 )
17 from PyQt6.QtNetwork import QNetworkRequest, QNetworkReply 17 from PyQt6.QtNetwork import QNetworkRequest, QNetworkReply
18 18
19 from E5Gui.E5Application import e5App 19 from E5Gui.EricApplication import ericApp
20 from E5Gui import E5MessageBox, E5FileDialog 20 from E5Gui import EricMessageBox, EricFileDialog
21 from E5Gui.E5Completers import E5DirCompleter 21 from E5Gui.EricCompleters import EricDirCompleter
22 from E5Gui.E5OverrideCursor import E5OverrideCursor 22 from E5Gui.EricOverrideCursor import EricOverrideCursor
23 23
24 from .Ui_SetupWizardDialog import Ui_SetupWizardDialog 24 from .Ui_SetupWizardDialog import Ui_SetupWizardDialog
25 25
26 import UI.PixmapCache 26 import UI.PixmapCache
27 import Utilities 27 import Utilities
31 class SetupWizardDialog(QDialog, Ui_SetupWizardDialog): 31 class SetupWizardDialog(QDialog, Ui_SetupWizardDialog):
32 """ 32 """
33 Class implementing the setup.py wizard dialog. 33 Class implementing the setup.py wizard dialog.
34 34
35 It displays a dialog for entering the parameters 35 It displays a dialog for entering the parameters
36 for the E5MessageBox code generator. 36 for the EricMessageBox code generator.
37 """ 37 """
38 ClassifiersUrl = "https://pypi.org/pypi?%3Aaction=list_classifiers" 38 ClassifiersUrl = "https://pypi.org/pypi?%3Aaction=list_classifiers"
39 39
40 def __init__(self, parent=None): 40 def __init__(self, parent=None):
41 """ 41 """
48 48
49 self.__replies = [] 49 self.__replies = []
50 50
51 self.dataTabWidget.setCurrentIndex(0) 51 self.dataTabWidget.setCurrentIndex(0)
52 52
53 self.__packageDirCompleter = E5DirCompleter(self.packageEdit) 53 self.__packageDirCompleter = EricDirCompleter(self.packageEdit)
54 self.__packageRootDirCompleter = E5DirCompleter(self.packageRootEdit) 54 self.__packageRootDirCompleter = EricDirCompleter(self.packageRootEdit)
55 self.__sourceDirCompleter = E5DirCompleter(self.sourceDirectoryEdit) 55 self.__sourceDirCompleter = EricDirCompleter(self.sourceDirectoryEdit)
56 56
57 self.packageRootDirButton.setIcon(UI.PixmapCache.getIcon("open")) 57 self.packageRootDirButton.setIcon(UI.PixmapCache.getIcon("open"))
58 self.packageDirButton.setIcon(UI.PixmapCache.getIcon("open")) 58 self.packageDirButton.setIcon(UI.PixmapCache.getIcon("open"))
59 self.sourceDirectoryButton.setIcon(UI.PixmapCache.getIcon("open")) 59 self.sourceDirectoryButton.setIcon(UI.PixmapCache.getIcon("open"))
60 60
73 73
74 self.__okButton = self.buttonBox.button( 74 self.__okButton = self.buttonBox.button(
75 QDialogButtonBox.StandardButton.Ok) 75 QDialogButtonBox.StandardButton.Ok)
76 self.__okButton.setEnabled(False) 76 self.__okButton.setEnabled(False)
77 77
78 projectOpen = e5App().getObject("Project").isOpen() 78 projectOpen = ericApp().getObject("Project").isOpen()
79 self.projectButton.setEnabled(projectOpen) 79 self.projectButton.setEnabled(projectOpen)
80 self.autodiscoverPackagesButton.setEnabled(projectOpen) 80 self.autodiscoverPackagesButton.setEnabled(projectOpen)
81 81
82 self.homePageUrlEdit.textChanged.connect(self.__enableOkButton) 82 self.homePageUrlEdit.textChanged.connect(self.__enableOkButton)
83 self.nameEdit.textChanged.connect(self.__enableOkButton) 83 self.nameEdit.textChanged.connect(self.__enableOkButton)
111 """ 111 """
112 request = QNetworkRequest(QUrl(SetupWizardDialog.ClassifiersUrl)) 112 request = QNetworkRequest(QUrl(SetupWizardDialog.ClassifiersUrl))
113 request.setAttribute( 113 request.setAttribute(
114 QNetworkRequest.Attribute.CacheLoadControlAttribute, 114 QNetworkRequest.Attribute.CacheLoadControlAttribute,
115 QNetworkRequest.CacheLoadControl.AlwaysNetwork) 115 QNetworkRequest.CacheLoadControl.AlwaysNetwork)
116 reply = e5App().getObject("UserInterface").networkAccessManager().get( 116 reply = ericApp().getObject("UserInterface").networkAccessManager().get(
117 request) 117 request)
118 reply.finished.connect(lambda: self.__classifiersDownloadDone(reply)) 118 reply.finished.connect(lambda: self.__classifiersDownloadDone(reply))
119 self.__replies.append(reply) 119 self.__replies.append(reply)
120 120
121 @pyqtSlot() 121 @pyqtSlot()
150 "data", "trove_classifiers.txt") 150 "data", "trove_classifiers.txt")
151 try: 151 try:
152 with open(filename, "r") as f: 152 with open(filename, "r") as f:
153 lines = f.readlines() 153 lines = f.readlines()
154 except OSError as err: 154 except OSError as err:
155 E5MessageBox.warning( 155 EricMessageBox.warning(
156 self, 156 self,
157 self.tr("Reading Trove Classifiers"), 157 self.tr("Reading Trove Classifiers"),
158 self.tr("""<p>The Trove Classifiers file <b>{0}</b>""" 158 self.tr("""<p>The Trove Classifiers file <b>{0}</b>"""
159 """ could not be read.</p><p>Reason: {1}</p>""") 159 """ could not be read.</p><p>Reason: {1}</p>""")
160 .format(filename, str(err))) 160 .format(filename, str(err)))
465 def on_projectButton_clicked(self): 465 def on_projectButton_clicked(self):
466 """ 466 """
467 Private slot to populate some fields with data retrieved from the 467 Private slot to populate some fields with data retrieved from the
468 current project. 468 current project.
469 """ 469 """
470 project = e5App().getObject("Project") 470 project = ericApp().getObject("Project")
471 471
472 self.nameEdit.setText(project.getProjectName()) 472 self.nameEdit.setText(project.getProjectName())
473 try: 473 try:
474 self.versionEdit.setText(project.getProjectVersion()) 474 self.versionEdit.setText(project.getProjectVersion())
475 self.authorEdit.setText(project.getProjectAuthor()) 475 self.authorEdit.setText(project.getProjectAuthor())
544 selection dialog. 544 selection dialog.
545 """ 545 """
546 startDir = self.packageEdit.text() 546 startDir = self.packageEdit.text()
547 if not startDir: 547 if not startDir:
548 startDir = self.packageRootEdit.text() or self.__getStartDir() 548 startDir = self.packageRootEdit.text() or self.__getStartDir()
549 packageDir = E5FileDialog.getExistingDirectory( 549 packageDir = EricFileDialog.getExistingDirectory(
550 self, 550 self,
551 self.tr("Package Directory"), 551 self.tr("Package Directory"),
552 Utilities.fromNativeSeparators(startDir)) 552 Utilities.fromNativeSeparators(startDir))
553 if packageDir: 553 if packageDir:
554 self.packageEdit.setText( 554 self.packageEdit.setText(
557 @pyqtSlot() 557 @pyqtSlot()
558 def on_autodiscoverPackagesButton_clicked(self): 558 def on_autodiscoverPackagesButton_clicked(self):
559 """ 559 """
560 Private slot to discover packages automatically. 560 Private slot to discover packages automatically.
561 """ 561 """
562 with E5OverrideCursor(): 562 with EricOverrideCursor():
563 self.autodiscoverPackagesButton.setEnabled(False) 563 self.autodiscoverPackagesButton.setEnabled(False)
564 startDir = self.packageRootEdit.text() or self.__getStartDir() 564 startDir = self.packageRootEdit.text() or self.__getStartDir()
565 if startDir: 565 if startDir:
566 self.packagesList.clear() 566 self.packagesList.clear()
567 for dirpath, _dirnames, filenames in os.walk(startDir): 567 for dirpath, _dirnames, filenames in os.walk(startDir):
576 directory selection dialog. 576 directory selection dialog.
577 """ 577 """
578 startDir = self.packageRootEdit.text() 578 startDir = self.packageRootEdit.text()
579 if not startDir: 579 if not startDir:
580 startDir = self.__getStartDir() 580 startDir = self.__getStartDir()
581 packagesRootDir = E5FileDialog.getExistingDirectory( 581 packagesRootDir = EricFileDialog.getExistingDirectory(
582 self, 582 self,
583 self.tr("Packages Root Directory"), 583 self.tr("Packages Root Directory"),
584 Utilities.fromNativeSeparators(startDir), 584 Utilities.fromNativeSeparators(startDir),
585 E5FileDialog.ShowDirsOnly) 585 EricFileDialog.ShowDirsOnly)
586 if packagesRootDir: 586 if packagesRootDir:
587 self.packageRootEdit.setText( 587 self.packageRootEdit.setText(
588 Utilities.toNativeSeparators(packagesRootDir)) 588 Utilities.toNativeSeparators(packagesRootDir))
589 589
590 @pyqtSlot(str) 590 @pyqtSlot(str)
592 """ 592 """
593 Private slot handling the entering of a packages root. 593 Private slot handling the entering of a packages root.
594 594
595 @param txt text of the line edit (string) 595 @param txt text of the line edit (string)
596 """ 596 """
597 projectOpen = e5App().getObject("Project").isOpen() 597 projectOpen = ericApp().getObject("Project").isOpen()
598 validPackagesRoot = bool(txt) and os.path.exists(txt) 598 validPackagesRoot = bool(txt) and os.path.exists(txt)
599 self.autodiscoverPackagesButton.setEnabled( 599 self.autodiscoverPackagesButton.setEnabled(
600 projectOpen or validPackagesRoot) 600 projectOpen or validPackagesRoot)
601 601
602 def __addPackage(self, pkgDir): 602 def __addPackage(self, pkgDir):
615 initName = os.path.join( 615 initName = os.path.join(
616 prefix, 616 prefix,
617 Utilities.toNativeSeparators(pkgDir), 617 Utilities.toNativeSeparators(pkgDir),
618 "__init__.py") 618 "__init__.py")
619 if not os.path.exists(initName): 619 if not os.path.exists(initName):
620 res = E5MessageBox.information( 620 res = EricMessageBox.information(
621 self, 621 self,
622 self.tr("Add Package"), 622 self.tr("Add Package"),
623 self.tr("""<p>The directory <b>{0}</b> is not""" 623 self.tr("""<p>The directory <b>{0}</b> is not"""
624 """ a Python package.</p>""") 624 """ a Python package.</p>""")
625 .format(pkgDir), 625 .format(pkgDir),
626 E5MessageBox.Ignore | E5MessageBox.Ok) 626 EricMessageBox.Ignore | EricMessageBox.Ok)
627 if res == E5MessageBox.Ok: 627 if res == EricMessageBox.Ok:
628 return 628 return
629 629
630 pkg = pkgDir.replace( 630 pkg = pkgDir.replace(
631 Utilities.toNativeSeparators(self.packageRootEdit.text()), "") 631 Utilities.toNativeSeparators(self.packageRootEdit.text()), "")
632 if pkg.startswith(("\\", "/")): 632 if pkg.startswith(("\\", "/")):
669 def on_addScriptButton_clicked(self): 669 def on_addScriptButton_clicked(self):
670 """ 670 """
671 Private slot to add scripts to the list. 671 Private slot to add scripts to the list.
672 """ 672 """
673 startDir = self.packageRootEdit.text() or self.__getStartDir() 673 startDir = self.packageRootEdit.text() or self.__getStartDir()
674 scriptsList = E5FileDialog.getOpenFileNames( 674 scriptsList = EricFileDialog.getOpenFileNames(
675 self, 675 self,
676 self.tr("Add Scripts"), 676 self.tr("Add Scripts"),
677 startDir, 677 startDir,
678 self.tr("Python Files (*.py);;All Files(*)")) 678 self.tr("Python Files (*.py);;All Files(*)"))
679 for script in scriptsList: 679 for script in scriptsList:
708 def on_addModuleButton_clicked(self): 708 def on_addModuleButton_clicked(self):
709 """ 709 """
710 Private slot to add Python modules to the list. 710 Private slot to add Python modules to the list.
711 """ 711 """
712 startDir = self.packageRootEdit.text() or self.__getStartDir() 712 startDir = self.packageRootEdit.text() or self.__getStartDir()
713 modulesList = E5FileDialog.getOpenFileNames( 713 modulesList = EricFileDialog.getOpenFileNames(
714 self, 714 self,
715 self.tr("Add Python Modules"), 715 self.tr("Add Python Modules"),
716 startDir, 716 startDir,
717 self.tr("Python Files (*.py)")) 717 self.tr("Python Files (*.py)"))
718 for module in modulesList: 718 for module in modulesList:
789 """ 789 """
790 Private slot to select the packages root directory via a 790 Private slot to select the packages root directory via a
791 directory selection dialog. 791 directory selection dialog.
792 """ 792 """
793 startDir = self.sourceDirectoryEdit.text() or self.__getStartDir() 793 startDir = self.sourceDirectoryEdit.text() or self.__getStartDir()
794 sourceDirectory = E5FileDialog.getExistingDirectory( 794 sourceDirectory = EricFileDialog.getExistingDirectory(
795 self, 795 self,
796 self.tr("Source Directory"), 796 self.tr("Source Directory"),
797 Utilities.fromNativeSeparators(startDir), 797 Utilities.fromNativeSeparators(startDir),
798 E5FileDialog.ShowDirsOnly) 798 EricFileDialog.ShowDirsOnly)
799 if sourceDirectory: 799 if sourceDirectory:
800 self.sourceDirectoryEdit.setText( 800 self.sourceDirectoryEdit.setText(
801 Utilities.toNativeSeparators(sourceDirectory)) 801 Utilities.toNativeSeparators(sourceDirectory))

eric ide

mercurial