src/eric7/MicroPython/NtpParametersDialog.py

Sun, 16 Mar 2025 12:53:12 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 16 Mar 2025 12:53:12 +0100
branch
eric7
changeset 11170
6d6199d668fb
parent 11090
f5f5f5803935
permissions
-rw-r--r--

Added the Adafruit Feather nRF52840 to the list of known NRF52 boards and changed the list of known CircuitPython boards to be more explicit with respect to Adafruit boards (i.e. VID 0x239A).

9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
3 # Copyright (c) 2023 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to enter the NTP parameters.
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt6.QtCore import pyqtSlot
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 from PyQt6.QtWidgets import QAbstractButton, QDialog, QDialogButtonBox
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from eric7 import Preferences
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from .Ui_NtpParametersDialog import Ui_NtpParametersDialog
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 class NtpParametersDialog(QDialog, Ui_NtpParametersDialog):
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 Class implementing a dialog to enter the NTP parameters.
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 def __init__(self, parent=None):
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Constructor
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @param parent reference to the parent widget (defaults to None)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @type QWidget (optional)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 super().__init__(parent)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 self.setupUi(self)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 self.serverEdit.textChanged.connect(self.__updateOk)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 self.serverEdit.setText(Preferences.getMicroPython("NtpServer"))
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 self.tzOffsetSpinBox.setValue(Preferences.getMicroPython("NtpOffset"))
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 self.dstCheckBox.setChecked(Preferences.getMicroPython("NtpDaylight"))
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 self.timeoutSpinBox.setValue(Preferences.getMicroPython("NtpTimeout"))
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 msh = self.minimumSizeHint()
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.resize(max(self.width(), msh.width()), msh.height())
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 @pyqtSlot()
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 def __updateOk(self):
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 Private slot to update the enabled stat of the OK button.
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 bool(self.serverEdit.text())
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 )
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 @pyqtSlot(QAbstractButton)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 def on_buttonBox_clicked(self, button):
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 Private slot handling the selection of a dialog button.
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 @param button reference to the clicked button
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 @type QAbstractButton
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 if button == self.buttonBox.button(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 QDialogButtonBox.StandardButton.RestoreDefaults
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 ):
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self.serverEdit.setText(Preferences.Prefs.microPythonDefaults["NtpServer"])
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 self.tzOffsetSpinBox.setValue(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 Preferences.Prefs.microPythonDefaults["NtpOffset"]
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 )
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 self.dstCheckBox.setChecked(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 Preferences.Prefs.microPythonDefaults["NtpDaylight"]
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 )
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 self.timeoutSpinBox.setValue(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 Preferences.Prefs.microPythonDefaults["NtpTimeout"]
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 )
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 @pyqtSlot()
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 def accept(self):
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 Public slot accepting the dialog.
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 if self.rememberCheckBox.isChecked():
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 Preferences.setMicroPython("NtpServer", self.serverEdit.text())
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 Preferences.setMicroPython("NtpOffset", self.tzOffsetSpinBox.value())
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 Preferences.setMicroPython("NtpDaylight", self.dstCheckBox.isChecked())
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 Preferences.setMicroPython("NtpTimeout", self.timeoutSpinBox.value())
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 super().accept()
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 def getParameters(self):
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 Public method to get the entered NTP parameters.
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 @return tuple containing the NTP server name, the timezone offset in hours,
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 a flag indicating daylight savings is in effect and a timeout value in
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 seconds
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 @rtype tuple of (str, int, bool, int)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 return (
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 self.serverEdit.text(),
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 self.tzOffsetSpinBox.value(),
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 self.dstCheckBox.isChecked(),
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 self.timeoutSpinBox.value(),
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 )

eric ide

mercurial