chore! Finishing touches

This commit is contained in:
Mr Finchum 2025-03-06 17:18:03 +01:00
parent fb5e74793f
commit fd0d8a1c5c

View file

@ -343,6 +343,14 @@ class OptimaLab35(QMainWindow, Ui_MainWindow):
# Start worker in thread pool ChatGPT # Start worker in thread pool ChatGPT
self.thread_pool.start(worker) self.thread_pool.start(worker)
def control_ending(self, name_lst):
for item in name_lst:
try:
int(item[-1])
except ValueError:
return False
return True
def insert_exif(self, image_files): def insert_exif(self, image_files):
input_folder = self.settings["input_folder"] input_folder = self.settings["input_folder"]
@ -374,6 +382,11 @@ class OptimaLab35(QMainWindow, Ui_MainWindow):
return return
image_list = self.image_list_from_folder(self.settings["input_folder"]) image_list = self.image_list_from_folder(self.settings["input_folder"])
if not self.control_ending(image_list):
QMessageBox.warning(self, "Warning", f"Error: one or more filenames do not end on a number.\nCan not adjust time")
self.toggle_buttons(True)
return
self.insert_exif(image_list) self.insert_exif(image_list)
self.toggle_buttons(True) self.toggle_buttons(True)
@ -410,7 +423,7 @@ class OptimaLab35(QMainWindow, Ui_MainWindow):
user_data["user_comment"] = self.ui.user_comment_comboBox.currentText() user_data["user_comment"] = self.ui.user_comment_comboBox.currentText()
user_data["artist"] = self.ui.artist_comboBox.currentText() user_data["artist"] = self.ui.artist_comboBox.currentText()
user_data["copyright_info"] = self.ui.copyright_info_comboBox.currentText() user_data["copyright_info"] = self.ui.copyright_info_comboBox.currentText()
user_data["software"] = f"{self.name} (v{self.version}) with {self.o.name} (v{self.o.version})" user_data["software"] = f"{self.name} {self.version} with {self.o.name} {self.o.version}"
return user_data return user_data
def get_selected_exif(self): def get_selected_exif(self):
@ -420,7 +433,10 @@ class OptimaLab35(QMainWindow, Ui_MainWindow):
if self.ui.add_date_checkBox.isChecked(): if self.ui.add_date_checkBox.isChecked():
selected_exif["date_time_original"] = self.get_date() selected_exif["date_time_original"] = self.get_date()
if self.ui.gps_checkBox.isChecked(): if self.ui.gps_checkBox.isChecked():
self.settings["gps"] = [float(self.ui.lat_lineEdit.text()), float(self.ui.long_lineEdit.text())] try:
self.settings["gps"] = [float(self.ui.lat_lineEdit.text()), float(self.ui.long_lineEdit.text())]
except ValueError as e:
self.settings["gps"] = "Wrong gps data"
else: else:
self.settings["gps"] = None self.settings["gps"] = None
return selected_exif return selected_exif
@ -460,6 +476,9 @@ class OptimaLab35(QMainWindow, Ui_MainWindow):
self.settings["own_date"] = self.get_checkbox_value(self.ui.add_date_checkBox) self.settings["own_date"] = self.get_checkbox_value(self.ui.add_date_checkBox)
if self.settings["own_exif"]: if self.settings["own_exif"]:
self.settings["user_selected_exif"] = self.get_selected_exif() self.settings["user_selected_exif"] = self.get_selected_exif()
if self.settings["gps"] is not None:
if len(self.settings["gps"]) != 2:
return self.settings["gps"]
else: else:
self.settings["user_selected_exif"] = None self.settings["user_selected_exif"] = None
self.settings["gps"] = None self.settings["gps"] = None
@ -841,6 +860,7 @@ class PreviewWindow(QMainWindow, Ui_Preview_Window):
self.ui.contrast_spinBox.valueChanged.connect(self.on_ui_change) self.ui.contrast_spinBox.valueChanged.connect(self.on_ui_change)
self.ui.contrast_Slider.valueChanged.connect(self.on_ui_change) self.ui.contrast_Slider.valueChanged.connect(self.on_ui_change)
self.ui.grayscale_checkBox.stateChanged.connect(self.on_ui_change) self.ui.grayscale_checkBox.stateChanged.connect(self.on_ui_change)
self.ui_elements(False)
def on_ui_change(self): def on_ui_change(self):
"""Triggers update only if live update is enabled.""" """Triggers update only if live update is enabled."""
@ -852,6 +872,13 @@ class PreviewWindow(QMainWindow, Ui_Preview_Window):
if file[0]: if file[0]:
self.ui.image_path_lineEdit.setText(file[0]) self.ui.image_path_lineEdit.setText(file[0])
self.update_preview() self.update_preview()
self.ui_elements(True)
def ui_elements(self, state):
self.ui.groupBox_2.setEnabled(state)
self.ui.groupBox.setEnabled(state)
self.ui.groupBox_5.setEnabled(state)
def update_preview(self): def update_preview(self):
"""Handles loading and displaying the image in a separate thread.""" """Handles loading and displaying the image in a separate thread."""