PyInstaller/PyInstallerConfigDialog.py

Wed, 17 Jan 2018 16:25:59 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 17 Jan 2018 16:25:59 +0100
changeset 3
eb2d30b4d34e
child 4
52f0572b5908
permissions
-rw-r--r--

Continued implementing the PyInstaller interface.

# -*- coding: utf-8 -*-

"""
Module implementing PyInstallerConfigDialog.
"""

from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QDialog

from E5Gui.E5PathPicker import E5PathPickerModes

from .Ui_PyInstallerConfigDialog import Ui_PyInstallerConfigDialog

import Globals


class PyInstallerConfigDialog(QDialog, Ui_PyInstallerConfigDialog):
    """
    Class documentation goes here.
    """
    def __init__(self, project, executables, params=None, mode="installer",
                 parent=None):
        """
        Constructor
        
        @param project reference to the project object
        @type Project.Project
        @param executables names of the pyinstaller executables
        @type list of str
        @param params parameters to set in the dialog
        @type dict
        @param mode mode of the dialog
        @type str (one of 'installer' or 'spec')
        @param parent reference to the parent widget
        @type QWidget
        """
        assert mode in ("installer", "spec")
        
        super(PyInstallerConfigDialog, self).__init__(parent)
        self.setupUi(self)
        
        self.inputFilePicker.setMode(E5PathPickerModes.OpenFileMode)
        self.inputFilePicker.setFilters(self.tr(
            "Python Files (*.py *.py2 *.py3);;"
            "Python GUI Files (*.pyw *.pyw2 *.pyw3);;"
            "Spec Files (*.spec);;"
            "All Files (*)"
        ))
        
        self.executableCombo.addItems(executables)
        
        self.__project = project
        if project.getMainScript() == "":
            # no main script defined
            self.selectedScriptButton.setChecke(True)
            self.mainScriptButton.setEnabled(False)
        
        self.iconFilePicker.setMode(E5PathPickerModes.OpenFileMode)
        if Globals.isMacPlatform():
            self.iconFilePicker.setFilters(self.tr(
                "Icon Files (*.icns);;"
                "All Files (*)"
            ))
        elif Globals.isWindowsPlatform():
            self.iconFilePicker.setFilters(self.tr(
                "Icon Files (*.ico);;"
                "Executable Files (*.exe);;"
                "All Files (*)"
            ))
        
        self.tabWidget.setTabEnabled(
            1,
            Globals.isMacPlatform() or Globals.isWindowsPlatform())
        self.tabWidget.setTabEnabled(
            2,
            Globals.isMacPlatform())

eric ide

mercurial