mirror of https://gitlab.com/pamhyr/pamhyr2
Geometry: Fix status propagation from ProfileXYZ to PointXYZ.
parent
26bb8d5beb
commit
bcaca20f28
|
|
@ -124,25 +124,25 @@ class ClipboardFormatError(ExeceptionWithMessageBox):
|
|||
title = _translate("Exception", "Clipboard format error")
|
||||
)
|
||||
|
||||
self.mime = mime
|
||||
self.header = header
|
||||
self.data = data
|
||||
self._mime = mime
|
||||
self._header = header
|
||||
self._data = data
|
||||
|
||||
if self.mime is not None:
|
||||
self.msg = f"Impossible to decode data to mime code '{self.mime}'"
|
||||
if self._mime is not None:
|
||||
self.msg = f"Impossible to decode data to mime code '{self._mime}'"
|
||||
else:
|
||||
if len(self.header) == 0:
|
||||
if len(self._header) == 0:
|
||||
msg = _translate("Exception", "without header")
|
||||
else:
|
||||
msg = (
|
||||
_translate("Exception", "with header") +
|
||||
f": {self.header}"
|
||||
f": {self._header}"
|
||||
)
|
||||
|
||||
self.msg = (
|
||||
_translate("Exception", "Invalid clipboard data format:") +
|
||||
f" '{self.data}' {msg}"
|
||||
)
|
||||
self.msg = (
|
||||
_translate("Exception", "Invalid clipboard data format:") +
|
||||
f" '{self._data}' {msg}"
|
||||
)
|
||||
|
||||
self.alert()
|
||||
|
||||
|
|
|
|||
|
|
@ -63,6 +63,28 @@ class ProfileXYZ(Profile):
|
|||
|
||||
return profile
|
||||
|
||||
def point_from_data(self, header, data):
|
||||
point = None
|
||||
try:
|
||||
if len(header) == 0:
|
||||
point = PointXYZ(
|
||||
*data, status=self._status
|
||||
)
|
||||
else:
|
||||
valid_header = {'name', 'x', 'y', 'z'}
|
||||
d = {"status": self._status}
|
||||
for i, v in enumerate(data):
|
||||
h = header[i].strip().lower().split(' ')[0]
|
||||
if h in valid_header:
|
||||
d[h] = v
|
||||
|
||||
point = PointXYZ(**d)
|
||||
except Exception as e:
|
||||
raise ClipboardFormatError(header=header, data=data)
|
||||
|
||||
return point
|
||||
|
||||
|
||||
def x(self):
|
||||
return [point.x for point in self._points]
|
||||
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ class Reach:
|
|||
Returns:
|
||||
The new profile.
|
||||
"""
|
||||
profile = ProfileXYZ(reach=self)
|
||||
profile = ProfileXYZ(reach=self, status=self._status)
|
||||
|
||||
self._profiles.insert(index, profile)
|
||||
self._update_profile_numbers()
|
||||
|
|
|
|||
|
|
@ -271,7 +271,7 @@ class TableEditableModel(QAbstractTableModel):
|
|||
self._profile, row,
|
||||
list(
|
||||
map(
|
||||
lambda d: PointXYZ.from_data(header, d),
|
||||
lambda d: self._profile.point_from_data(header, d),
|
||||
data
|
||||
)
|
||||
)
|
||||
|
|
|
|||
|
|
@ -333,28 +333,7 @@ class ProfileWindow(QMainWindow, WindowToolKit):
|
|||
if list_deleted_names:
|
||||
self.msg_box_check_duplication_names(list_deleted_names)
|
||||
|
||||
def closeEvent(self, event):
|
||||
print("TODO: Close")
|
||||
# if self.status_change_tableview:
|
||||
# reply = QtWidgets.QMessageBox.question(
|
||||
# self,
|
||||
# _translate("MainWindowProfile", "Terminer l'édition du profil "),
|
||||
# _translate("MainWindowProfile", "Voulez-vous vraiment quitter "
|
||||
# "?\n Oui : Valider et quitter\n"
|
||||
# "Non : Annuler"),
|
||||
# QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No
|
||||
# )
|
||||
|
||||
# if reply == QtWidgets.QMessageBox.Yes:
|
||||
# self.validate_changes()
|
||||
# self.plot()
|
||||
# event.accept()
|
||||
# else:
|
||||
# event.ignore()
|
||||
# self.ui.btn_check.setEnabled(True)
|
||||
# self.ui.btn_go_back.setEnabled(True)
|
||||
|
||||
def msg_box_check_duplication_names(self, list_deleted_names): # name_point,list_deleted_names,counter_list):
|
||||
def msg_box_check_duplication_names(self, list_deleted_names):
|
||||
if len(list_deleted_names) == 1:
|
||||
text = _translate("MainWindowProfile",
|
||||
"Le nom ''{}'' est dupliqué."
|
||||
|
|
|
|||
Loading…
Reference in New Issue