From fd0d8a1c5c5156ba399a4ba01a05c68f5e6b114e Mon Sep 17 00:00:00 2001 From: CodeByMrFinchum Date: Thu, 6 Mar 2025 17:18:03 +0100 Subject: [PATCH] chore! Finishing touches --- src/OptimaLab35/gui.py | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/OptimaLab35/gui.py b/src/OptimaLab35/gui.py index 187a8c1..a69a452 100644 --- a/src/OptimaLab35/gui.py +++ b/src/OptimaLab35/gui.py @@ -343,6 +343,14 @@ class OptimaLab35(QMainWindow, Ui_MainWindow): # Start worker in thread pool ChatGPT 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): input_folder = self.settings["input_folder"] @@ -374,6 +382,11 @@ class OptimaLab35(QMainWindow, Ui_MainWindow): return 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.toggle_buttons(True) @@ -410,7 +423,7 @@ class OptimaLab35(QMainWindow, Ui_MainWindow): user_data["user_comment"] = self.ui.user_comment_comboBox.currentText() user_data["artist"] = self.ui.artist_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 def get_selected_exif(self): @@ -420,7 +433,10 @@ class OptimaLab35(QMainWindow, Ui_MainWindow): if self.ui.add_date_checkBox.isChecked(): selected_exif["date_time_original"] = self.get_date() 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: self.settings["gps"] = None 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) if self.settings["own_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: self.settings["user_selected_exif"] = 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_Slider.valueChanged.connect(self.on_ui_change) self.ui.grayscale_checkBox.stateChanged.connect(self.on_ui_change) + self.ui_elements(False) def on_ui_change(self): """Triggers update only if live update is enabled.""" @@ -852,6 +872,13 @@ class PreviewWindow(QMainWindow, Ui_Preview_Window): if file[0]: self.ui.image_path_lineEdit.setText(file[0]) 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): """Handles loading and displaying the image in a separate thread."""