Corrected the Setup wizard dialog and changed it to use the EricPathPicker widget. eric7

Tue, 02 Nov 2021 18:02:00 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 02 Nov 2021 18:02:00 +0100
branch
eric7
changeset 8757
23b2fe1cd863
parent 8756
8bea096a0f24
child 8759
7efebdfa5dc2

Corrected the Setup wizard dialog and changed it to use the EricPathPicker widget.

eric7/Plugins/PluginWizardSetup.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py file | annotate | diff | comparison | revisions
eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui file | annotate | diff | comparison | revisions
--- a/eric7/Plugins/PluginWizardSetup.py	Tue Nov 02 17:59:27 2021 +0100
+++ b/eric7/Plugins/PluginWizardSetup.py	Tue Nov 02 18:02:00 2021 +0100
@@ -27,8 +27,7 @@
 shortDescription = "Wizard for the creation of a setup.py file."
 longDescription = (
     """This plug-in implements a wizard to generate code for"""
-    """ a setup.py file. It supports the 'distutils' and 'setuptools'"""
-    """ variants."""
+    """ a setup.py file. It supports the 'setuptools' variant."""
 )
 needsRestart = False
 pyqtApi = 2
--- a/eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py	Tue Nov 02 17:59:27 2021 +0100
+++ b/eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py	Tue Nov 02 18:02:00 2021 +0100
@@ -18,11 +18,10 @@
 
 from EricWidgets.EricApplication import ericApp
 from EricWidgets import EricMessageBox, EricFileDialog
-from EricWidgets.EricCompleters import EricDirCompleter
+from EricWidgets.EricPathPicker import EricPathPickerModes
 
 from .Ui_SetupWizardDialog import Ui_SetupWizardDialog
 
-import UI.PixmapCache
 import Utilities
 import Preferences
 
@@ -31,8 +30,8 @@
     """
     Class implementing the setup.py wizard dialog.
     
-    It displays a dialog for entering the parameters
-    for the EricMessageBox code generator.
+    It displays a dialog for entering the parameters for the setup.py code
+    generator.
     """
     ClassifiersUrl = "https://pypi.org/pypi?%3Aaction=list_classifiers"
     
@@ -49,13 +48,8 @@
         
         self.dataTabWidget.setCurrentIndex(0)
         
-        self.__packageDirCompleter = EricDirCompleter(self.packageEdit)
-        self.__packageRootDirCompleter = EricDirCompleter(self.packageRootEdit)
-        self.__sourceDirCompleter = EricDirCompleter(self.sourceDirectoryEdit)
-        
-        self.packageRootDirButton.setIcon(UI.PixmapCache.getIcon("open"))
-        self.packageDirButton.setIcon(UI.PixmapCache.getIcon("open"))
-        self.sourceDirectoryButton.setIcon(UI.PixmapCache.getIcon("open"))
+        self.packageRootPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
+        self.sourceDirectoryPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
         
         self.__mandatoryStyleSheet = "QLineEdit {border: 2px solid;}"
         for lineEdit in [self.nameEdit, self.versionEdit,
@@ -72,7 +66,6 @@
         
         projectOpen = ericApp().getObject("Project").isOpen()
         self.projectButton.setEnabled(projectOpen)
-        self.autodiscoverPackagesButton.setEnabled(projectOpen)
         
         self.homePageUrlEdit.textChanged.connect(self.__enableOkButton)
         self.nameEdit.textChanged.connect(self.__enableOkButton)
@@ -386,7 +379,7 @@
         
         code += '{0}packages=find_packages('.format(istring)
         src = Utilities.fromNativeSeparators(
-            self.sourceDirectoryEdit.text())
+            self.sourceDirectoryPicker.text())
         excludePatterns = []
         for row in range(self.excludePatternList.count()):
             excludePatterns.append(
@@ -465,41 +458,11 @@
         self.summaryEdit.setText(summary)
         self.descriptionEdit.setPlainText(description)
         
-        self.packageRootEdit.setText(project.getProjectPath())
+        self.packageRootPicker.setText(project.getProjectPath())
         
         # prevent overwriting of entries by disabling the button
         self.projectButton.setEnabled(False)
     
-    @pyqtSlot()
-    def on_packageRootDirButton_clicked(self):
-        """
-        Private slot to select the packages root directory via a
-        directory selection dialog.
-        """
-        startDir = self.packageRootEdit.text()
-        if not startDir:
-            startDir = self.__getStartDir()
-        packagesRootDir = EricFileDialog.getExistingDirectory(
-            self,
-            self.tr("Packages Root Directory"),
-            Utilities.fromNativeSeparators(startDir),
-            EricFileDialog.ShowDirsOnly)
-        if packagesRootDir:
-            self.packageRootEdit.setText(
-                Utilities.toNativeSeparators(packagesRootDir))
-    
-    @pyqtSlot(str)
-    def on_packageRootEdit_textChanged(self, txt):
-        """
-        Private slot handling the entering of a packages root.
-        
-        @param txt text of the line edit (string)
-        """
-        projectOpen = ericApp().getObject("Project").isOpen()
-        validPackagesRoot = bool(txt) and os.path.exists(txt)
-        self.autodiscoverPackagesButton.setEnabled(
-            projectOpen or validPackagesRoot)
-    
     def __getStartDir(self):
         """
         Private method to get the start directory for selection dialogs.
@@ -533,7 +496,7 @@
         """
         Private slot to add scripts to the list.
         """
-        startDir = self.packageRootEdit.text() or self.__getStartDir()
+        startDir = self.packageRootPicker.text() or self.__getStartDir()
         scriptsList = EricFileDialog.getOpenFileNames(
             self,
             self.tr("Add Scripts"),
@@ -572,7 +535,7 @@
         """
         Private slot to add Python modules to the list.
         """
-        startDir = self.packageRootEdit.text() or self.__getStartDir()
+        startDir = self.packageRootPicker.text() or self.__getStartDir()
         modulesList = EricFileDialog.getOpenFileNames(
             self,
             self.tr("Add Python Modules"),
@@ -637,19 +600,3 @@
         exclude pattern edit.
         """
         self.on_addExludePatternButton_clicked()
-    
-    @pyqtSlot()
-    def on_sourceDirectoryButton_clicked(self):
-        """
-        Private slot to select the packages root directory via a
-        directory selection dialog.
-        """
-        startDir = self.sourceDirectoryEdit.text() or self.__getStartDir()
-        sourceDirectory = EricFileDialog.getExistingDirectory(
-            self,
-            self.tr("Source Directory"),
-            Utilities.fromNativeSeparators(startDir),
-            EricFileDialog.ShowDirsOnly)
-        if sourceDirectory:
-            self.sourceDirectoryEdit.setText(
-                Utilities.toNativeSeparators(sourceDirectory))
--- a/eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui	Tue Nov 02 17:59:27 2021 +0100
+++ b/eric7/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.ui	Tue Nov 02 18:02:00 2021 +0100
@@ -71,7 +71,7 @@
     </layout>
    </item>
    <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_5">
+    <layout class="QHBoxLayout" name="horizontalLayout_2">
      <item>
       <widget class="QLabel" name="label_15">
        <property name="text">
@@ -80,19 +80,21 @@
       </widget>
      </item>
      <item>
-      <widget class="QLineEdit" name="packageRootEdit">
+      <widget class="EricPathPicker" name="packageRootPicker" native="true">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="focusPolicy">
+        <enum>Qt::StrongFocus</enum>
+       </property>
        <property name="toolTip">
         <string>Enter the root directory</string>
        </property>
       </widget>
      </item>
-     <item>
-      <widget class="QToolButton" name="packageRootDirButton">
-       <property name="toolTip">
-        <string>Select the root directory via a directory selection dialog</string>
-       </property>
-      </widget>
-     </item>
     </layout>
    </item>
    <item>
@@ -497,122 +499,92 @@
       <attribute name="title">
        <string>Packages</string>
       </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_8">
-       <item>
-        <widget class="QStackedWidget" name="packagesStackedWidget">
-         <property name="currentIndex">
-          <number>0</number>
+      <layout class="QGridLayout" name="gridLayout_5">
+       <item row="0" column="0">
+        <widget class="QLabel" name="label_17">
+         <property name="text">
+          <string>Source Directory:</string>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="EricPathPicker" name="sourceDirectoryPicker" native="true">
+         <property name="focusPolicy">
+          <enum>Qt::StrongFocus</enum>
+         </property>
+         <property name="toolTip">
+          <string>Enter the source directory for the 'find_packages()' call</string>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="0">
+        <widget class="QLabel" name="label_18">
+         <property name="text">
+          <string>Exclude Patterns:</string>
          </property>
-         <widget class="QWidget" name="setuptoolsPage">
-          <layout class="QGridLayout" name="gridLayout_5">
-           <property name="leftMargin">
-            <number>0</number>
-           </property>
-           <property name="topMargin">
-            <number>0</number>
-           </property>
-           <property name="rightMargin">
-            <number>0</number>
-           </property>
-           <property name="bottomMargin">
-            <number>0</number>
+         <property name="alignment">
+          <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="1">
+        <widget class="QListWidget" name="excludePatternList">
+         <property name="alternatingRowColors">
+          <bool>true</bool>
+         </property>
+         <property name="selectionMode">
+          <enum>QAbstractItemView::ExtendedSelection</enum>
+         </property>
+         <property name="sortingEnabled">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+       <item row="2" column="1">
+        <layout class="QHBoxLayout" name="horizontalLayout_8">
+         <item>
+          <widget class="QPushButton" name="deleteExcludePatternButton">
+           <property name="enabled">
+            <bool>false</bool>
            </property>
-           <item row="0" column="0">
-            <widget class="QLabel" name="label_17">
-             <property name="text">
-              <string>Source Directory:</string>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="1">
-            <widget class="QLineEdit" name="sourceDirectoryEdit">
-             <property name="toolTip">
-              <string>Enter the source directory for the 'find_packages()' call</string>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="2">
-            <widget class="QToolButton" name="sourceDirectoryButton">
-             <property name="toolTip">
-              <string>Select the source directory for the 'find_packages()' call via a directory selection dialog</string>
-             </property>
-             <property name="text">
-              <string/>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="0">
-            <widget class="QLabel" name="label_18">
-             <property name="text">
-              <string>Exclude Patterns:</string>
-             </property>
-             <property name="alignment">
-              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="1" colspan="2">
-            <widget class="QListWidget" name="excludePatternList">
-             <property name="alternatingRowColors">
-              <bool>true</bool>
-             </property>
-             <property name="selectionMode">
-              <enum>QAbstractItemView::ExtendedSelection</enum>
-             </property>
-             <property name="sortingEnabled">
-              <bool>true</bool>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="1" colspan="2">
-            <layout class="QHBoxLayout" name="horizontalLayout_8">
-             <item>
-              <widget class="QPushButton" name="deleteExcludePatternButton">
-               <property name="enabled">
-                <bool>false</bool>
-               </property>
-               <property name="toolTip">
-                <string>Press to delete the selected entries</string>
-               </property>
-               <property name="text">
-                <string>Delete</string>
-               </property>
-              </widget>
-             </item>
-             <item>
-              <widget class="QPushButton" name="addExludePatternButton">
-               <property name="enabled">
-                <bool>false</bool>
-               </property>
-               <property name="toolTip">
-                <string>Press to add the pattern</string>
-               </property>
-               <property name="text">
-                <string>Add</string>
-               </property>
-              </widget>
-             </item>
-             <item>
-              <widget class="QLineEdit" name="excludePatternEdit">
-               <property name="toolTip">
-                <string>Enter an exclude pattern for the 'find_packages()' call</string>
-               </property>
-              </widget>
-             </item>
-            </layout>
-           </item>
-           <item row="3" column="0" colspan="3">
-            <widget class="QCheckBox" name="includePackageDataCheckBox">
-             <property name="toolTip">
-              <string>Select to add the 'include_package_data' statement</string>
-             </property>
-             <property name="text">
-              <string>Add 'include_package_data' Statement</string>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </widget>
+           <property name="toolTip">
+            <string>Press to delete the selected entries</string>
+           </property>
+           <property name="text">
+            <string>Delete</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QPushButton" name="addExludePatternButton">
+           <property name="enabled">
+            <bool>false</bool>
+           </property>
+           <property name="toolTip">
+            <string>Press to add the pattern</string>
+           </property>
+           <property name="text">
+            <string>Add</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QLineEdit" name="excludePatternEdit">
+           <property name="toolTip">
+            <string>Enter an exclude pattern for the 'find_packages()' call</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </item>
+       <item row="3" column="0" colspan="2">
+        <widget class="QCheckBox" name="includePackageDataCheckBox">
+         <property name="toolTip">
+          <string>Select to add the 'include_package_data' statement</string>
+         </property>
+         <property name="text">
+          <string>Add 'include_package_data' Statement</string>
+         </property>
         </widget>
        </item>
       </layout>
@@ -784,13 +756,18 @@
    <extends>QPlainTextEdit</extends>
    <header>EricWidgets/EricSpellCheckedTextEdit.h</header>
   </customwidget>
+  <customwidget>
+   <class>EricPathPicker</class>
+   <extends>QWidget</extends>
+   <header>EricWidgets/EricPathPicker.h</header>
+   <container>1</container>
+  </customwidget>
  </customwidgets>
  <tabstops>
   <tabstop>introCheckBox</tabstop>
   <tabstop>importCheckBox</tabstop>
   <tabstop>metaDataCheckBox</tabstop>
-  <tabstop>packageRootEdit</tabstop>
-  <tabstop>packageRootDirButton</tabstop>
+  <tabstop>packageRootPicker</tabstop>
   <tabstop>dataTabWidget</tabstop>
   <tabstop>nameEdit</tabstop>
   <tabstop>versionEdit</tabstop>
@@ -811,12 +788,11 @@
   <tabstop>developmentStatusComboBox</tabstop>
   <tabstop>localClassifiersButton</tabstop>
   <tabstop>classifiersList</tabstop>
-  <tabstop>sourceDirectoryEdit</tabstop>
-  <tabstop>sourceDirectoryButton</tabstop>
+  <tabstop>sourceDirectoryPicker</tabstop>
   <tabstop>excludePatternList</tabstop>
-  <tabstop>deleteExcludePatternButton</tabstop>
+  <tabstop>excludePatternEdit</tabstop>
   <tabstop>addExludePatternButton</tabstop>
-  <tabstop>excludePatternEdit</tabstop>
+  <tabstop>deleteExcludePatternButton</tabstop>
   <tabstop>includePackageDataCheckBox</tabstop>
   <tabstop>modulesList</tabstop>
   <tabstop>deleteModuleButton</tabstop>

eric ide

mercurial