feat: added two new information that can be added to the image exif.
All checks were successful
ci/woodpecker/manual/woodpecker_ci Pipeline was successful
ci/woodpecker/push/woodpecker_ci Pipeline was successful
ci/woodpecker/tag/woodpecker_ci Pipeline was successful

Now information about developing of the film can be added to the exif file as well as enhancing of exif window.
Co-authored-by: Mr Finchum <mr.finchum@pm.me>
Co-committed-by: Mr Finchum <mr.finchum@pm.me>
This commit is contained in:
Mr Finchum 2025-08-13 12:36:17 +02:00 committed by Mr Finchum
parent 894d444f91
commit 9dc14cdfcb
7 changed files with 251 additions and 253 deletions

View file

@ -1,8 +1,20 @@
# Changelog # Changelog
## 1.6.x
### 1.6.0: Feature - Add Information from Developing Process
- Added two new combo boxes: one for **film developer** and one for **development time** (how long the film was developed).
- The film developer field accepts all characters, while the time field only accepts `NA` or `mm:ss`.
- **Improved EXIF Edit Window**: Pressing **Enter** (Return) now adds the new item to the list, just like pressing the **Add** button.
---
## 1.5.x ## 1.5.x
### 1.5.0: Feature - Time of dateEdit now today ### 1.5.0: Feature - Time of dateEdit now today
- Changes that instead of the dateEdit elements being always set to a last day of 2024 it is the current day. - Changes that instead of the dateEdit elements being always set to a last day of 2024 it is the current day.
---
## 1.4.x ## 1.4.x
### 1.4.2: Fix links ### 1.4.2: Fix links
- Fixed that changelog was linked to GitLab, not it is to code.boxyfoxy.net - Fixed that changelog was linked to GitLab, not it is to code.boxyfoxy.net

View file

@ -160,6 +160,33 @@ class OptimaLab35(QMainWindow, Ui_MainWindow):
elif index == 0: # Main Tab elif index == 0: # Main Tab
self.handle_exif_file("write") self.handle_exif_file("write")
def parse_time(self, s):
# Modified ChatGPT code
"""Return total seconds if valid mm:ss, otherwise None."""
try:
mm, ss = s.split(":")
return int(mm) * 60 + int(ss)
except (ValueError, AttributeError):
return None
def sort_times(self, times):
# Keep only mm:ss or NA
# Modified ChatGPT code
filtered = []
for t in times:
if t is None:
filtered.append(None)
elif isinstance(t, str):
stripped = t.strip()
if stripped.upper() in {"NA"}:
filtered.append(stripped)
elif self.parse_time(stripped) is not None:
filtered.append(stripped)
# ignore anything else
# Sort: NA first, then valid times ascending
return sorted(filtered, key=lambda x: (0, 0) if (x is None or str(x).strip().upper() in {"NA"})
else (1, self.parse_time(x)))
def sort_dict_of_lists(self, input_dict): def sort_dict_of_lists(self, input_dict):
# Partily ChatGPT # Partily ChatGPT
sorted_dict = {} sorted_dict = {}
@ -170,9 +197,14 @@ class OptimaLab35(QMainWindow, Ui_MainWindow):
lst = sorted(lst) lst = sorted(lst)
lst = [str(x) for x in lst] lst = [str(x) for x in lst]
sorted_dict["iso"] = lst sorted_dict["iso"] = lst
elif key == "time":
lst = self.sort_times(lst)
sorted_dict["time"] = lst
elif all(isinstance(x, str) for x in lst): elif all(isinstance(x, str) for x in lst):
sorted_dict[key] = sorted(lst, key=str.lower) # Case-insensitive sort for strings sorted_dict[key] = sorted(
lst,
key=lambda x: (0, x.lower()) if str(x).lower() == "na" else (1, str(x).lower())
)
return sorted_dict return sorted_dict
@ -206,6 +238,8 @@ class OptimaLab35(QMainWindow, Ui_MainWindow):
"user_comment": self.ui.user_comment_comboBox, "user_comment": self.ui.user_comment_comboBox,
"artist": self.ui.artist_comboBox, "artist": self.ui.artist_comboBox,
"copyright_info": self.ui.copyright_info_comboBox, "copyright_info": self.ui.copyright_info_comboBox,
"developer": self.ui.dev_comboBox,
"time": self.ui.time_comboBox,
} }
self.populate_comboboxes(combo_mapping) self.populate_comboboxes(combo_mapping)
@ -410,13 +444,26 @@ class OptimaLab35(QMainWindow, Ui_MainWindow):
new_date = datetime.strptime(date_input, "%Y-%m-%d") new_date = datetime.strptime(date_input, "%Y-%m-%d")
return new_date.strftime("%Y:%m:%d 00:00:00") return new_date.strftime("%Y:%m:%d 00:00:00")
def add_laboratory_info(self):
lab_info_str = ""
dev_text = self.ui.dev_comboBox.currentText()
time_text = self.ui.time_comboBox.currentText()
if dev_text != "NA":
lab_info_str += f", {dev_text}"
if time_text != "NA":
lab_info_str += f", {time_text}"
return lab_info_str
def collect_selected_exif(self): def collect_selected_exif(self):
user_data = {} user_data = {}
user_data["make"] = self.ui.make_comboBox.currentText() user_data["make"] = self.ui.make_comboBox.currentText()
user_data["model"] = self.ui.model_comboBox.currentText() user_data["model"] = self.ui.model_comboBox.currentText()
user_data["lens"] = self.ui.lens_comboBox.currentText() user_data["lens"] = self.ui.lens_comboBox.currentText()
user_data["iso"] = self.ui.iso_comboBox.currentText() user_data["iso"] = self.ui.iso_comboBox.currentText()
user_data["image_description"] = self.ui.image_description_comboBox.currentText() lab_info = self.add_laboratory_info()
user_data["image_description"] = f"{self.ui.image_description_comboBox.currentText()} {lab_info}"
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} {self.version} with {self.o.name} {self.o.version}" user_data["software"] = f"{self.name} {self.version} with {self.o.name} {self.o.version}"

View file

@ -34,6 +34,7 @@ class ExifEditor(QMainWindow):
# Line edit for adding items # Line edit for adding items
self.line_edit = QLineEdit() self.line_edit = QLineEdit()
self.line_edit.returnPressed.connect(self.add_item)
self.line_edit.setPlaceholderText("Enter new item...") self.line_edit.setPlaceholderText("Enter new item...")
main_layout.addWidget(self.line_edit) main_layout.addWidget(self.line_edit)

View file

@ -3,7 +3,7 @@
################################################################################ ################################################################################
## Form generated from reading UI file 'main_window.ui' ## Form generated from reading UI file 'main_window.ui'
## ##
## Created by: Qt User Interface Compiler version 6.8.2 ## Created by: Qt User Interface Compiler version 6.9.0
## ##
## WARNING! All changes made in this file will be lost when recompiling UI file! ## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################ ################################################################################
@ -28,7 +28,7 @@ class Ui_MainWindow(object):
if not MainWindow.objectName(): if not MainWindow.objectName():
MainWindow.setObjectName(u"MainWindow") MainWindow.setObjectName(u"MainWindow")
MainWindow.setWindowModality(Qt.WindowModality.NonModal) MainWindow.setWindowModality(Qt.WindowModality.NonModal)
MainWindow.resize(450, 720) MainWindow.resize(450, 696)
MainWindow.setMinimumSize(QSize(350, 677)) MainWindow.setMinimumSize(QSize(350, 677))
MainWindow.setMaximumSize(QSize(450, 1000)) MainWindow.setMaximumSize(QSize(450, 1000))
self.actionInfo = QAction(MainWindow) self.actionInfo = QAction(MainWindow)
@ -364,141 +364,105 @@ class Ui_MainWindow(object):
self.exif_options_group.setEnabled(False) self.exif_options_group.setEnabled(False)
self.gridLayout_7 = QGridLayout(self.exif_options_group) self.gridLayout_7 = QGridLayout(self.exif_options_group)
self.gridLayout_7.setObjectName(u"gridLayout_7") self.gridLayout_7.setObjectName(u"gridLayout_7")
self.widget_7 = QWidget(self.exif_options_group) self.label_7 = QLabel(self.exif_options_group)
self.widget_7.setObjectName(u"widget_7")
self.verticalLayout_7 = QVBoxLayout(self.widget_7)
self.verticalLayout_7.setObjectName(u"verticalLayout_7")
self.label_7 = QLabel(self.widget_7)
self.label_7.setObjectName(u"label_7") self.label_7.setObjectName(u"label_7")
self.verticalLayout_7.addWidget(self.label_7) self.gridLayout_7.addWidget(self.label_7, 6, 0, 1, 1)
self.artist_comboBox = QComboBox(self.widget_7) self.label = QLabel(self.exif_options_group)
self.artist_comboBox.setObjectName(u"artist_comboBox")
self.verticalLayout_7.addWidget(self.artist_comboBox)
self.gridLayout_7.addWidget(self.widget_7, 3, 0, 1, 1)
self.widget_4 = QWidget(self.exif_options_group)
self.widget_4.setObjectName(u"widget_4")
self.verticalLayout_4 = QVBoxLayout(self.widget_4)
self.verticalLayout_4.setObjectName(u"verticalLayout_4")
self.label_4 = QLabel(self.widget_4)
self.label_4.setObjectName(u"label_4")
self.verticalLayout_4.addWidget(self.label_4)
self.iso_comboBox = QComboBox(self.widget_4)
self.iso_comboBox.setObjectName(u"iso_comboBox")
self.verticalLayout_4.addWidget(self.iso_comboBox)
self.gridLayout_7.addWidget(self.widget_4, 1, 1, 1, 1)
self.widget_6 = QWidget(self.exif_options_group)
self.widget_6.setObjectName(u"widget_6")
self.verticalLayout_6 = QVBoxLayout(self.widget_6)
self.verticalLayout_6.setObjectName(u"verticalLayout_6")
self.label_6 = QLabel(self.widget_6)
self.label_6.setObjectName(u"label_6")
self.verticalLayout_6.addWidget(self.label_6)
self.user_comment_comboBox = QComboBox(self.widget_6)
self.user_comment_comboBox.setObjectName(u"user_comment_comboBox")
self.verticalLayout_6.addWidget(self.user_comment_comboBox)
self.gridLayout_7.addWidget(self.widget_6, 2, 1, 1, 1)
self.widget_2 = QWidget(self.exif_options_group)
self.widget_2.setObjectName(u"widget_2")
self.verticalLayout_2 = QVBoxLayout(self.widget_2)
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
self.label_2 = QLabel(self.widget_2)
self.label_2.setObjectName(u"label_2")
self.verticalLayout_2.addWidget(self.label_2)
self.lens_comboBox = QComboBox(self.widget_2)
self.lens_comboBox.setObjectName(u"lens_comboBox")
self.verticalLayout_2.addWidget(self.lens_comboBox)
self.gridLayout_7.addWidget(self.widget_2, 1, 0, 1, 1)
self.widget_5 = QWidget(self.exif_options_group)
self.widget_5.setObjectName(u"widget_5")
self.verticalLayout_5 = QVBoxLayout(self.widget_5)
self.verticalLayout_5.setObjectName(u"verticalLayout_5")
self.label_5 = QLabel(self.widget_5)
self.label_5.setObjectName(u"label_5")
self.verticalLayout_5.addWidget(self.label_5)
self.image_description_comboBox = QComboBox(self.widget_5)
self.image_description_comboBox.setObjectName(u"image_description_comboBox")
self.verticalLayout_5.addWidget(self.image_description_comboBox)
self.gridLayout_7.addWidget(self.widget_5, 2, 0, 1, 1)
self.widget = QWidget(self.exif_options_group)
self.widget.setObjectName(u"widget")
self.verticalLayout = QVBoxLayout(self.widget)
self.verticalLayout.setObjectName(u"verticalLayout")
self.label = QLabel(self.widget)
self.label.setObjectName(u"label") self.label.setObjectName(u"label")
self.verticalLayout.addWidget(self.label) self.gridLayout_7.addWidget(self.label, 0, 0, 1, 1)
self.make_comboBox = QComboBox(self.widget) self.image_description_comboBox = QComboBox(self.exif_options_group)
self.make_comboBox.setObjectName(u"make_comboBox") self.image_description_comboBox.setObjectName(u"image_description_comboBox")
self.verticalLayout.addWidget(self.make_comboBox) self.gridLayout_7.addWidget(self.image_description_comboBox, 5, 0, 1, 1)
self.label_4 = QLabel(self.exif_options_group)
self.label_4.setObjectName(u"label_4")
self.gridLayout_7.addWidget(self.widget, 0, 0, 1, 1) self.gridLayout_7.addWidget(self.label_4, 2, 1, 1, 1)
self.widget_3 = QWidget(self.exif_options_group) self.time_comboBox = QComboBox(self.exif_options_group)
self.widget_3.setObjectName(u"widget_3") self.time_comboBox.setObjectName(u"time_comboBox")
self.verticalLayout_3 = QVBoxLayout(self.widget_3)
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
self.label_3 = QLabel(self.widget_3)
self.label_3.setObjectName(u"label_3")
self.verticalLayout_3.addWidget(self.label_3) self.gridLayout_7.addWidget(self.time_comboBox, 9, 1, 1, 1)
self.model_comboBox = QComboBox(self.widget_3) self.dev_comboBox = QComboBox(self.exif_options_group)
self.dev_comboBox.setObjectName(u"dev_comboBox")
self.gridLayout_7.addWidget(self.dev_comboBox, 9, 0, 1, 1)
self.label_5 = QLabel(self.exif_options_group)
self.label_5.setObjectName(u"label_5")
self.gridLayout_7.addWidget(self.label_5, 4, 0, 1, 1)
self.model_comboBox = QComboBox(self.exif_options_group)
self.model_comboBox.setObjectName(u"model_comboBox") self.model_comboBox.setObjectName(u"model_comboBox")
self.verticalLayout_3.addWidget(self.model_comboBox) self.gridLayout_7.addWidget(self.model_comboBox, 1, 1, 1, 1)
self.lens_comboBox = QComboBox(self.exif_options_group)
self.lens_comboBox.setObjectName(u"lens_comboBox")
self.gridLayout_7.addWidget(self.widget_3, 0, 1, 1, 1) self.gridLayout_7.addWidget(self.lens_comboBox, 3, 0, 1, 1)
self.widget_8 = QWidget(self.exif_options_group) self.user_comment_comboBox = QComboBox(self.exif_options_group)
self.widget_8.setObjectName(u"widget_8") self.user_comment_comboBox.setObjectName(u"user_comment_comboBox")
self.verticalLayout_8 = QVBoxLayout(self.widget_8)
self.verticalLayout_8.setObjectName(u"verticalLayout_8") self.gridLayout_7.addWidget(self.user_comment_comboBox, 5, 1, 1, 1)
self.label_8 = QLabel(self.widget_8)
self.make_comboBox = QComboBox(self.exif_options_group)
self.make_comboBox.setObjectName(u"make_comboBox")
self.gridLayout_7.addWidget(self.make_comboBox, 1, 0, 1, 1)
self.label_14 = QLabel(self.exif_options_group)
self.label_14.setObjectName(u"label_14")
self.gridLayout_7.addWidget(self.label_14, 8, 0, 1, 1)
self.label_8 = QLabel(self.exif_options_group)
self.label_8.setObjectName(u"label_8") self.label_8.setObjectName(u"label_8")
self.verticalLayout_8.addWidget(self.label_8) self.gridLayout_7.addWidget(self.label_8, 6, 1, 1, 1)
self.copyright_info_comboBox = QComboBox(self.widget_8) self.label_3 = QLabel(self.exif_options_group)
self.label_3.setObjectName(u"label_3")
self.gridLayout_7.addWidget(self.label_3, 0, 1, 1, 1)
self.label_6 = QLabel(self.exif_options_group)
self.label_6.setObjectName(u"label_6")
self.gridLayout_7.addWidget(self.label_6, 4, 1, 1, 1)
self.copyright_info_comboBox = QComboBox(self.exif_options_group)
self.copyright_info_comboBox.setObjectName(u"copyright_info_comboBox") self.copyright_info_comboBox.setObjectName(u"copyright_info_comboBox")
self.verticalLayout_8.addWidget(self.copyright_info_comboBox) self.gridLayout_7.addWidget(self.copyright_info_comboBox, 7, 1, 1, 1)
self.iso_comboBox = QComboBox(self.exif_options_group)
self.iso_comboBox.setObjectName(u"iso_comboBox")
self.gridLayout_7.addWidget(self.widget_8, 3, 1, 1, 1) self.gridLayout_7.addWidget(self.iso_comboBox, 3, 1, 1, 1)
self.label_15 = QLabel(self.exif_options_group)
self.label_15.setObjectName(u"label_15")
self.gridLayout_7.addWidget(self.label_15, 8, 1, 1, 1)
self.label_2 = QLabel(self.exif_options_group)
self.label_2.setObjectName(u"label_2")
self.gridLayout_7.addWidget(self.label_2, 2, 0, 1, 1)
self.artist_comboBox = QComboBox(self.exif_options_group)
self.artist_comboBox.setObjectName(u"artist_comboBox")
self.gridLayout_7.addWidget(self.artist_comboBox, 7, 0, 1, 1)
self.verticalLayout_9.addWidget(self.exif_options_group) self.verticalLayout_9.addWidget(self.exif_options_group)
@ -543,7 +507,7 @@ class Ui_MainWindow(object):
self.dateEdit = QDateEdit(self.date_groupBox) self.dateEdit = QDateEdit(self.date_groupBox)
self.dateEdit.setObjectName(u"dateEdit") self.dateEdit.setObjectName(u"dateEdit")
self.dateEdit.setEnabled(False) self.dateEdit.setEnabled(False)
self.dateEdit.setDateTime(QDateTime(QDate(2024, 12, 31), QTime(22, 0, 0))) self.dateEdit.setDateTime(QDateTime(QDate(2024, 12, 31), QTime(20, 0, 0)))
self.dateEdit.setMaximumDate(QDate(2038, 12, 31)) self.dateEdit.setMaximumDate(QDate(2038, 12, 31))
self.dateEdit.setMinimumDate(QDate(1970, 1, 1)) self.dateEdit.setMinimumDate(QDate(1970, 1, 1))
self.dateEdit.setCalendarPopup(True) self.dateEdit.setCalendarPopup(True)
@ -563,7 +527,7 @@ class Ui_MainWindow(object):
MainWindow.setStatusBar(self.statusBar) MainWindow.setStatusBar(self.statusBar)
self.menuBar = QMenuBar(MainWindow) self.menuBar = QMenuBar(MainWindow)
self.menuBar.setObjectName(u"menuBar") self.menuBar.setObjectName(u"menuBar")
self.menuBar.setGeometry(QRect(0, 0, 450, 19)) self.menuBar.setGeometry(QRect(0, 0, 450, 26))
self.menuHelp = QMenu(self.menuBar) self.menuHelp = QMenu(self.menuBar)
self.menuHelp.setObjectName(u"menuHelp") self.menuHelp.setObjectName(u"menuHelp")
self.menuSettings = QMenu(self.menuBar) self.menuSettings = QMenu(self.menuBar)
@ -710,15 +674,17 @@ class Ui_MainWindow(object):
self.edit_exif_button.setText(QCoreApplication.translate("MainWindow", u"EXIF editor", None)) self.edit_exif_button.setText(QCoreApplication.translate("MainWindow", u"EXIF editor", None))
self.exif_options_group.setTitle(QCoreApplication.translate("MainWindow", u"Essential EXIF Info", None)) self.exif_options_group.setTitle(QCoreApplication.translate("MainWindow", u"Essential EXIF Info", None))
self.label_7.setText(QCoreApplication.translate("MainWindow", u"Artist", None)) self.label_7.setText(QCoreApplication.translate("MainWindow", u"Artist", None))
self.label_4.setText(QCoreApplication.translate("MainWindow", u"ISO", None))
self.label_6.setText(QCoreApplication.translate("MainWindow", u"Scanner", None))
self.label_2.setText(QCoreApplication.translate("MainWindow", u"Lens", None))
self.label_5.setText(QCoreApplication.translate("MainWindow", u"Film", None))
self.label.setText(QCoreApplication.translate("MainWindow", u"Make", None)) self.label.setText(QCoreApplication.translate("MainWindow", u"Make", None))
self.label_4.setText(QCoreApplication.translate("MainWindow", u"ISO", None))
self.label_5.setText(QCoreApplication.translate("MainWindow", u"Film", None))
self.make_comboBox.setCurrentText("") self.make_comboBox.setCurrentText("")
self.make_comboBox.setPlaceholderText("") self.make_comboBox.setPlaceholderText("")
self.label_3.setText(QCoreApplication.translate("MainWindow", u"Model", None)) self.label_14.setText(QCoreApplication.translate("MainWindow", u"Developer", None))
self.label_8.setText(QCoreApplication.translate("MainWindow", u"Copyright", None)) self.label_8.setText(QCoreApplication.translate("MainWindow", u"Copyright", None))
self.label_3.setText(QCoreApplication.translate("MainWindow", u"Model", None))
self.label_6.setText(QCoreApplication.translate("MainWindow", u"Scanner", None))
self.label_15.setText(QCoreApplication.translate("MainWindow", u"Time", None))
self.label_2.setText(QCoreApplication.translate("MainWindow", u"Lens", None))
self.gps_groupBox.setTitle(QCoreApplication.translate("MainWindow", u"GPS Coordinates", None)) self.gps_groupBox.setTitle(QCoreApplication.translate("MainWindow", u"GPS Coordinates", None))
#if QT_CONFIG(tooltip) #if QT_CONFIG(tooltip)
self.gps_checkBox.setToolTip(QCoreApplication.translate("MainWindow", u"From a Homepage like latlong.net", None)) self.gps_checkBox.setToolTip(QCoreApplication.translate("MainWindow", u"From a Homepage like latlong.net", None))

View file

@ -10,7 +10,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>450</width> <width>450</width>
<height>720</height> <height>696</height>
</rect> </rect>
</property> </property>
<property name="minimumSize"> <property name="minimumSize">
@ -672,141 +672,113 @@
<string>Essential EXIF Info</string> <string>Essential EXIF Info</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_7"> <layout class="QGridLayout" name="gridLayout_7">
<item row="3" column="0"> <item row="6" column="0">
<widget class="QWidget" name="widget_7" native="true"> <widget class="QLabel" name="label_7">
<layout class="QVBoxLayout" name="verticalLayout_7"> <property name="text">
<item> <string>Artist</string>
<widget class="QLabel" name="label_7"> </property>
<property name="text">
<string>Artist</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="artist_comboBox"/>
</item>
</layout>
</widget>
</item>
<item row="1" column="1">
<widget class="QWidget" name="widget_4" native="true">
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>ISO</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="iso_comboBox"/>
</item>
</layout>
</widget>
</item>
<item row="2" column="1">
<widget class="QWidget" name="widget_6" native="true">
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QLabel" name="label_6">
<property name="text">
<string>Scanner</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="user_comment_comboBox"/>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QWidget" name="widget_2" native="true">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>Lens</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="lens_comboBox"/>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<widget class="QWidget" name="widget_5" native="true">
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QLabel" name="label_5">
<property name="text">
<string>Film</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="image_description_comboBox"/>
</item>
</layout>
</widget> </widget>
</item> </item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QWidget" name="widget" native="true"> <widget class="QLabel" name="label">
<layout class="QVBoxLayout" name="verticalLayout"> <property name="text">
<item> <string>Make</string>
<widget class="QLabel" name="label"> </property>
<property name="text"> </widget>
<string>Make</string> </item>
</property> <item row="5" column="0">
</widget> <widget class="QComboBox" name="image_description_comboBox"/>
</item> </item>
<item> <item row="2" column="1">
<widget class="QComboBox" name="make_comboBox"> <widget class="QLabel" name="label_4">
<property name="currentText"> <property name="text">
<string/> <string>ISO</string>
</property> </property>
<property name="placeholderText"> </widget>
<string/> </item>
</property> <item row="9" column="1">
</widget> <widget class="QComboBox" name="time_comboBox"/>
</item> </item>
</layout> <item row="9" column="0">
<widget class="QComboBox" name="dev_comboBox"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Film</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="model_comboBox"/>
</item>
<item row="3" column="0">
<widget class="QComboBox" name="lens_comboBox"/>
</item>
<item row="5" column="1">
<widget class="QComboBox" name="user_comment_comboBox"/>
</item>
<item row="1" column="0">
<widget class="QComboBox" name="make_comboBox">
<property name="currentText">
<string/>
</property>
<property name="placeholderText">
<string/>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QLabel" name="label_14">
<property name="text">
<string>Developer</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Copyright</string>
</property>
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item row="0" column="1">
<widget class="QWidget" name="widget_3" native="true"> <widget class="QLabel" name="label_3">
<layout class="QVBoxLayout" name="verticalLayout_3"> <property name="text">
<item> <string>Model</string>
<widget class="QLabel" name="label_3"> </property>
<property name="text">
<string>Model</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="model_comboBox"/>
</item>
</layout>
</widget> </widget>
</item> </item>
<item row="3" column="1"> <item row="4" column="1">
<widget class="QWidget" name="widget_8" native="true"> <widget class="QLabel" name="label_6">
<layout class="QVBoxLayout" name="verticalLayout_8"> <property name="text">
<item> <string>Scanner</string>
<widget class="QLabel" name="label_8"> </property>
<property name="text">
<string>Copyright</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="copyright_info_comboBox"/>
</item>
</layout>
</widget> </widget>
</item> </item>
<item row="7" column="1">
<widget class="QComboBox" name="copyright_info_comboBox"/>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="iso_comboBox"/>
</item>
<item row="8" column="1">
<widget class="QLabel" name="label_15">
<property name="text">
<string>Time</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Lens</string>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QComboBox" name="artist_comboBox"/>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
@ -896,7 +868,7 @@
</property> </property>
<property name="dateTime"> <property name="dateTime">
<datetime> <datetime>
<hour>22</hour> <hour>20</hour>
<minute>0</minute> <minute>0</minute>
<second>0</second> <second>0</second>
<year>2024</year> <year>2024</year>
@ -939,7 +911,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>450</width> <width>450</width>
<height>19</height> <height>26</height>
</rect> </rect>
</property> </property>
<widget class="QMenu" name="menuHelp"> <widget class="QMenu" name="menuHelp">

View file

@ -3,7 +3,7 @@
################################################################################ ################################################################################
## Form generated from reading UI file 'preview_window.ui' ## Form generated from reading UI file 'preview_window.ui'
## ##
## Created by: Qt User Interface Compiler version 6.8.2 ## Created by: Qt User Interface Compiler version 6.9.0
## ##
## WARNING! All changes made in this file will be lost when recompiling UI file! ## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################ ################################################################################

View file

@ -3,7 +3,7 @@
################################################################################ ################################################################################
## Form generated from reading UI file 'settings_window.ui' ## Form generated from reading UI file 'settings_window.ui'
## ##
## Created by: Qt User Interface Compiler version 6.8.2 ## Created by: Qt User Interface Compiler version 6.9.0
## ##
## WARNING! All changes made in this file will be lost when recompiling UI file! ## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################ ################################################################################