mirror of https://gitlab.com/pamhyr/pamhyr2
Geometry: Fix status propagation from ProfileXYZ to PointXYZ.
parent
26bb8d5beb
commit
bcaca20f28
|
|
@ -124,24 +124,24 @@ class ClipboardFormatError(ExeceptionWithMessageBox):
|
||||||
title = _translate("Exception", "Clipboard format error")
|
title = _translate("Exception", "Clipboard format error")
|
||||||
)
|
)
|
||||||
|
|
||||||
self.mime = mime
|
self._mime = mime
|
||||||
self.header = header
|
self._header = header
|
||||||
self.data = data
|
self._data = data
|
||||||
|
|
||||||
if self.mime is not None:
|
if self._mime is not None:
|
||||||
self.msg = f"Impossible to decode data to mime code '{self.mime}'"
|
self.msg = f"Impossible to decode data to mime code '{self._mime}'"
|
||||||
else:
|
else:
|
||||||
if len(self.header) == 0:
|
if len(self._header) == 0:
|
||||||
msg = _translate("Exception", "without header")
|
msg = _translate("Exception", "without header")
|
||||||
else:
|
else:
|
||||||
msg = (
|
msg = (
|
||||||
_translate("Exception", "with header") +
|
_translate("Exception", "with header") +
|
||||||
f": {self.header}"
|
f": {self._header}"
|
||||||
)
|
)
|
||||||
|
|
||||||
self.msg = (
|
self.msg = (
|
||||||
_translate("Exception", "Invalid clipboard data format:") +
|
_translate("Exception", "Invalid clipboard data format:") +
|
||||||
f" '{self.data}' {msg}"
|
f" '{self._data}' {msg}"
|
||||||
)
|
)
|
||||||
|
|
||||||
self.alert()
|
self.alert()
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,28 @@ class ProfileXYZ(Profile):
|
||||||
|
|
||||||
return 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):
|
def x(self):
|
||||||
return [point.x for point in self._points]
|
return [point.x for point in self._points]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ class Reach:
|
||||||
Returns:
|
Returns:
|
||||||
The new profile.
|
The new profile.
|
||||||
"""
|
"""
|
||||||
profile = ProfileXYZ(reach=self)
|
profile = ProfileXYZ(reach=self, status=self._status)
|
||||||
|
|
||||||
self._profiles.insert(index, profile)
|
self._profiles.insert(index, profile)
|
||||||
self._update_profile_numbers()
|
self._update_profile_numbers()
|
||||||
|
|
|
||||||
|
|
@ -271,7 +271,7 @@ class TableEditableModel(QAbstractTableModel):
|
||||||
self._profile, row,
|
self._profile, row,
|
||||||
list(
|
list(
|
||||||
map(
|
map(
|
||||||
lambda d: PointXYZ.from_data(header, d),
|
lambda d: self._profile.point_from_data(header, d),
|
||||||
data
|
data
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -333,28 +333,7 @@ class ProfileWindow(QMainWindow, WindowToolKit):
|
||||||
if list_deleted_names:
|
if list_deleted_names:
|
||||||
self.msg_box_check_duplication_names(list_deleted_names)
|
self.msg_box_check_duplication_names(list_deleted_names)
|
||||||
|
|
||||||
def closeEvent(self, event):
|
def msg_box_check_duplication_names(self, list_deleted_names):
|
||||||
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):
|
|
||||||
if len(list_deleted_names) == 1:
|
if len(list_deleted_names) == 1:
|
||||||
text = _translate("MainWindowProfile",
|
text = _translate("MainWindowProfile",
|
||||||
"Le nom ''{}'' est dupliqué."
|
"Le nom ''{}'' est dupliqué."
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue