src/eric7/MicroPython/MipPackageDialog.py

branch
eric7
changeset 9844
2f3d623f7617
child 9979
dbafba79461d
equal deleted inserted replaced
9843:72e8270a5940 9844:2f3d623f7617
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2023 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing a dialog to enter the package data for 'mip'.
8 """
9
10 from PyQt6.QtCore import pyqtSlot
11 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
12 from semver import VersionInfo
13
14 from .Ui_MipPackageDialog import Ui_MipPackageDialog
15
16
17 class MipPackageDialog(QDialog, Ui_MipPackageDialog):
18 """
19 Class implementing a dialog to enter the package data for 'mip'.
20 """
21
22 def __init__(self, parent=None):
23 """
24 Constructor
25
26 @param parent reference to the parent widget (defaults to None)
27 @type QWidget (optional)
28 """
29 super().__init__(parent)
30 self.setupUi(self)
31
32 self.packageEdit.textChanged.connect(self.__updateOk)
33 self.versionEdit.textChanged.connect(self.__updateOk)
34
35 self.__updateOk()
36
37 msh = self.minimumSizeHint()
38 self.resize(max(self.width(), msh.width()), msh.height())
39
40 @pyqtSlot()
41 def __updateOk(self):
42 """
43 Private slot to set the enabled state of the OK button.
44 """
45 enable = bool(self.packageEdit.text())
46 version = self.versionEdit.text()
47 if version:
48 enable &= VersionInfo.isvalid(version)
49
50 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(enable)
51
52 def getData(self):
53 """
54 Public method to get the entered package installation data.
55
56 @return tuple containing the package name, package version and a flag,
57 indicating to install the package as '.mpy ' files
58 @rtype tuple of (str, str, bool)
59 """
60 return (
61 self.packageEdit.text(),
62 self.versionEdit.text(),
63 self.mpyCheckBox.isChecked(),
64 )

eric ide

mercurial