mirror of
https://github.com/KeksPirates/SoftwareManager.git
synced 2026-08-03 17:39:42 +02:00
Update and revert image path in settings dialog
Capture the original state.image_path at dialog start, connect the Image Path QLineEdit's textChanged signal to update state.image_path immediately, and restore the original image_path if the settings dialog is cancelled. This matches existing undo behavior for width/offset/opacity and prevents partial image path edits from persisting when the dialog is rejected.
This commit is contained in:
@@ -24,6 +24,7 @@ SVG_FOLDER = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path
|
|||||||
|
|
||||||
|
|
||||||
def settings_dialog(self):
|
def settings_dialog(self):
|
||||||
|
temp_image_path = state.image_path
|
||||||
temp_image_width = state.image_width
|
temp_image_width = state.image_width
|
||||||
temp_image_offset = state.image_offset
|
temp_image_offset = state.image_offset
|
||||||
temp_image_opacity = state.image_opacity
|
temp_image_opacity = state.image_opacity
|
||||||
@@ -128,6 +129,7 @@ def settings_dialog(self):
|
|||||||
image_path_container, image_path = create_widget(QLineEdit, "Image Path: ")
|
image_path_container, image_path = create_widget(QLineEdit, "Image Path: ")
|
||||||
image_path.setText(state.image_path)
|
image_path.setText(state.image_path)
|
||||||
image_path_layout = image_path_container.layout()
|
image_path_layout = image_path_container.layout()
|
||||||
|
image_path.textChanged.connect(lambda text: setattr(state, 'image_path', text))
|
||||||
|
|
||||||
def browse_image_path():
|
def browse_image_path():
|
||||||
file_path = QFileDialog.getOpenFileName(dialog, "Select Image File", state.image_path, "Image Files (*.png *.jpg)")[0]
|
file_path = QFileDialog.getOpenFileName(dialog, "Select Image File", state.image_path, "Image Files (*.png *.jpg)")[0]
|
||||||
@@ -314,6 +316,7 @@ def settings_dialog(self):
|
|||||||
|
|
||||||
def on_dialog_finished(result): # Undo Image changes if "Save" button is not pressed
|
def on_dialog_finished(result): # Undo Image changes if "Save" button is not pressed
|
||||||
if result == QtWidgets.QDialog.DialogCode.Rejected:
|
if result == QtWidgets.QDialog.DialogCode.Rejected:
|
||||||
|
state.image_path = temp_image_path
|
||||||
state.image_width = temp_image_width
|
state.image_width = temp_image_width
|
||||||
state.image_offset = temp_image_offset
|
state.image_offset = temp_image_offset
|
||||||
state.image_opacity = temp_image_opacity
|
state.image_opacity = temp_image_opacity
|
||||||
|
|||||||
Reference in New Issue
Block a user