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