115 Public method to get the IPv4 address as a string. |
115 Public method to get the IPv4 address as a string. |
116 |
116 |
117 @return IPv4 address |
117 @return IPv4 address |
118 @rtype str |
118 @rtype str |
119 """ |
119 """ |
120 return "{0}.{1}.{2}.{3}".format( |
120 ip1 = self.ip1Edit.text() |
121 self.ip1Edit.text(), |
121 ip2 = self.ip2Edit.text() |
122 self.ip2Edit.text(), |
122 ip3 = self.ip3Edit.text() |
123 self.ip3Edit.text(), |
123 ip4 = self.ip4Edit.text() |
124 self.ip4Edit.text(), |
124 |
125 ) |
125 if not all(bool(ip) for ip in (ip1, ip2, ip3, ip4)): |
|
126 return "" |
|
127 |
|
128 return "{0}.{1}.{2}.{3}".format(ip1, ip2, ip3, ip4) |
126 |
129 |
127 def setText(self, address): |
130 def setText(self, address): |
128 """ |
131 """ |
129 Public method to set the IPv4 address given a string. |
132 Public method to set the IPv4 address given a string. |
|
133 |
|
134 Note: If an invalid address is given, the input is cleared. |
130 |
135 |
131 @param address IPv4 address |
136 @param address IPv4 address |
132 @type str |
137 @type str |
133 @exception ValueError raised to indicate an invalid IPv4 address |
138 """ |
134 """ |
139 if address and address != "...": # '...' is empty as well |
135 if address: |
|
136 try: |
140 try: |
137 ipaddress.IPv4Address(address) |
141 ipaddress.IPv4Address(address) |
138 except ipaddress.AddressValueError as err: |
142 except ipaddress.AddressValueError: |
139 raise ValueError(str(err)) |
143 self.clear() |
|
144 return |
140 |
145 |
141 addressParts = address.split(".") |
146 addressParts = address.split(".") |
142 self.ip1Edit.setText(addressParts[0]) |
147 self.ip1Edit.setText(addressParts[0]) |
143 self.ip2Edit.setText(addressParts[1]) |
148 self.ip2Edit.setText(addressParts[1]) |
144 self.ip3Edit.setText(addressParts[2]) |
149 self.ip3Edit.setText(addressParts[2]) |
163 """ |
168 """ |
164 Public method to set the IPv4 address given an ipaddress.IPv4Address object. |
169 Public method to set the IPv4 address given an ipaddress.IPv4Address object. |
165 |
170 |
166 @param address IPv4 address |
171 @param address IPv4 address |
167 @type ipaddress.IPv4Address |
172 @type ipaddress.IPv4Address |
168 """ |
173 @exception ValueError raised to indicate an invalid IPv4 address |
169 if address: |
174 """ |
|
175 if address and address != "...": # '...' is empty as well |
|
176 try: |
|
177 ipaddress.IPv4Address(address) |
|
178 except ipaddress.AddressValueError as err: |
|
179 raise ValueError(str(err)) |
|
180 |
170 self.setText(str(address)) |
181 self.setText(str(address)) |
171 else: |
182 else: |
172 self.clear() |
183 self.clear() |
173 |
184 |
174 @pyqtSlot() |
185 @pyqtSlot() |