def _create_field(self, element):
"""
:param element: the element newly copied
:return: base QWidget, with the source and destination fields built
"""
def button_clicked():
open_dialog = QFileDialog()
if element.tag == "file":
file_path = open_dialog.getOpenFileName(self, "Select File:", self.kwargs["package_path"])
if file_path[0]:
item_ui.edit_source.setText(relpath(file_path[0], self.kwargs["package_path"]))
elif element.tag == "folder":
folder_path = open_dialog.getExistingDirectory(self, "Select folder:", self.kwargs["package_path"])
if folder_path:
item_ui.edit_source.setText(relpath(folder_path, self.kwargs["package_path"]))
parent_element = element.getparent()
item = QWidget()
item_ui = wizard_files_item.Ui_base()
item_ui.setupUi(item)
# set initial values
item_ui.edit_source.setText(element.properties["source"].value)
item_ui.edit_dest.setText(element.properties["destination"].value)
item_ui.button_delete.setIcon(QIcon(join(cur_folder, "resources/logos/logo_cross.png")))
# connect the signals
item_ui.edit_source.textChanged.connect(element.properties["source"].set_value)
item_ui.edit_source.textChanged.connect(element.write_attribs)
item_ui.edit_source.textChanged.connect(lambda: self.code_changed.emit(parent_element))
item_ui.edit_dest.textChanged.connect(element.properties["destination"].set_value)
item_ui.edit_dest.textChanged.connect(element.write_attribs)
item_ui.edit_dest.textChanged.connect(lambda: self.code_changed.emit(parent_element))
item_ui.button_source.clicked.connect(button_clicked)
item_ui.button_delete.clicked.connect(item.deleteLater)
item_ui.button_delete.clicked.connect(lambda _: parent_element.remove_child(element))
item_ui.button_delete.clicked.connect(lambda: self.code_changed.emit(parent_element))
return item
评论列表
文章目录