diff --git a/src/OptimaLab35/ui/main_window.py b/src/OptimaLab35/ui/main_window.py
index bca1e18..d19d062 100644
--- a/src/OptimaLab35/ui/main_window.py
+++ b/src/OptimaLab35/ui/main_window.py
@@ -538,6 +538,9 @@ class Ui_MainWindow(object):
self.dateEdit.setObjectName(u"dateEdit")
self.dateEdit.setEnabled(False)
self.dateEdit.setDateTime(QDateTime(QDate(2025, 1, 1), QTime(0, 0, 0)))
+ self.dateEdit.setMaximumDate(QDate(2038, 12, 31))
+ self.dateEdit.setMinimumDate(QDate(1970, 1, 1))
+ self.dateEdit.setCalendarPopup(True)
self.horizontalLayout_2.addWidget(self.dateEdit)
@@ -603,27 +606,60 @@ class Ui_MainWindow(object):
self.actionPreview.setText(QCoreApplication.translate("MainWindow", u"Preview image", None))
self.actionAbout.setText(QCoreApplication.translate("MainWindow", u"About", None))
self.actionUpdate.setText(QCoreApplication.translate("MainWindow", u"Update", None))
+#if QT_CONFIG(tooltip)
+ self.input_folder_button.setToolTip(QCoreApplication.translate("MainWindow", u"Open a file browser to select a folder for loading images.", None))
+#endif // QT_CONFIG(tooltip)
self.input_folder_button.setText(QCoreApplication.translate("MainWindow", u"Input", None))
self.output_path.setText("")
self.output_path.setPlaceholderText(QCoreApplication.translate("MainWindow", u"Output folder", None))
+#if QT_CONFIG(tooltip)
+ self.input_path.setToolTip("")
+#endif // QT_CONFIG(tooltip)
self.input_path.setText("")
self.input_path.setPlaceholderText(QCoreApplication.translate("MainWindow", u"Input folder", None))
+#if QT_CONFIG(tooltip)
+ self.output_folder_button.setToolTip(QCoreApplication.translate("MainWindow", u"Open a file browser to select a folder for saving images.", None))
+#endif // QT_CONFIG(tooltip)
self.output_folder_button.setText(QCoreApplication.translate("MainWindow", u"Output", None))
- self.groupBox.setTitle(QCoreApplication.translate("MainWindow", u"Essential group", None))
+ self.groupBox.setTitle(QCoreApplication.translate("MainWindow", u"Export Settings", None))
self.quality_label_2.setText(QCoreApplication.translate("MainWindow", u"Quality", None))
self.label_11.setText(QCoreApplication.translate("MainWindow", u"Format ", None))
- self.optimize_checkBox.setText(QCoreApplication.translate("MainWindow", u"optimize", None))
+#if QT_CONFIG(tooltip)
+ self.optimize_checkBox.setToolTip(QCoreApplication.translate("MainWindow", u"Recommended for web use. Enables PIL optimization to slightly reduce file size without visible quality loss. ", None))
+#endif // QT_CONFIG(tooltip)
+ self.optimize_checkBox.setText(QCoreApplication.translate("MainWindow", u"Optimize", None))
+#if QT_CONFIG(tooltip)
+ self.png_quality_Slider.setToolTip("")
+#endif // QT_CONFIG(tooltip)
self.quality_label_1.setText(QCoreApplication.translate("MainWindow", u"Quality", None))
+#if QT_CONFIG(tooltip)
+ self.image_type.setToolTip(QCoreApplication.translate("MainWindow", u"Select export file type.", None))
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(tooltip)
+ self.label_13.setToolTip(QCoreApplication.translate("MainWindow", u"Choose image scaling options. \u26a0 Upscaling large images may freeze the system depending on hardware.", None))
+#endif // QT_CONFIG(tooltip)
self.label_13.setText(QCoreApplication.translate("MainWindow", u"Resize", None))
- self.groupBox_2.setTitle(QCoreApplication.translate("MainWindow", u"Extra stuff", None))
+#if QT_CONFIG(tooltip)
+ self.resize_Slider.setToolTip("")
+#endif // QT_CONFIG(tooltip)
+#if QT_CONFIG(tooltip)
+ self.resize_spinBox.setToolTip("")
+#endif // QT_CONFIG(tooltip)
+ self.groupBox_2.setTitle(QCoreApplication.translate("MainWindow", u"Image Adjustments", None))
self.label_9.setText(QCoreApplication.translate("MainWindow", u"Brightness", None))
self.label_10.setText(QCoreApplication.translate("MainWindow", u"Contrast", None))
- self.grayscale_checkBox.setText(QCoreApplication.translate("MainWindow", u"Turn image to Black and White", None))
+#if QT_CONFIG(tooltip)
+ self.grayscale_checkBox.setToolTip(QCoreApplication.translate("MainWindow", u"Converts image to Grayscale", None))
+#endif // QT_CONFIG(tooltip)
+ self.grayscale_checkBox.setText(QCoreApplication.translate("MainWindow", u"Black and White Mode", None))
+#if QT_CONFIG(tooltip)
+ self.preview_Button.setToolTip(QCoreApplication.translate("MainWindow", u"Open a preview window to see how brightness, contrast, and grayscale adjustments affect your image.", None))
+#endif // QT_CONFIG(tooltip)
self.preview_Button.setText(QCoreApplication.translate("MainWindow", u"Preview", None))
- self.groupBox_3.setTitle(QCoreApplication.translate("MainWindow", u"Watermark", None))
+ self.groupBox_3.setTitle(QCoreApplication.translate("MainWindow", u"Watermarking", None))
self.watermark_lineEdit.setText("")
- self.watermark_lineEdit.setPlaceholderText(QCoreApplication.translate("MainWindow", u"Enter Watermark", None))
+ self.watermark_lineEdit.setPlaceholderText(QCoreApplication.translate("MainWindow", u"Enter Watermark Text", None))
self.label_12.setText(QCoreApplication.translate("MainWindow", u"Size", None))
self.font_size_comboBox.setItemText(0, QCoreApplication.translate("MainWindow", u"Tiny", None))
self.font_size_comboBox.setItemText(1, QCoreApplication.translate("MainWindow", u"Small", None))
@@ -631,20 +667,41 @@ class Ui_MainWindow(object):
self.font_size_comboBox.setItemText(3, QCoreApplication.translate("MainWindow", u"Large", None))
self.font_size_comboBox.setItemText(4, QCoreApplication.translate("MainWindow", u"Huge", None))
+#if QT_CONFIG(tooltip)
+ self.font_size_comboBox.setToolTip(QCoreApplication.translate("MainWindow", u"Adjust the font size for the watermark. Size scales proportionally to image dimensions.", None))
+#endif // QT_CONFIG(tooltip)
self.font_size_comboBox.setCurrentText(QCoreApplication.translate("MainWindow", u"Normal", None))
- self.rename_group.setTitle(QCoreApplication.translate("MainWindow", u"files", None))
+ self.rename_group.setTitle(QCoreApplication.translate("MainWindow", u"File Naming", None))
+#if QT_CONFIG(tooltip)
+ self.rename_checkbox.setToolTip(QCoreApplication.translate("MainWindow", u"Enable to rename all images with a new base name. '_xx' will be added at the end of each filename.", None))
+#endif // QT_CONFIG(tooltip)
self.rename_checkbox.setText(QCoreApplication.translate("MainWindow", u"Rename", None))
+#if QT_CONFIG(tooltip)
+ self.revert_checkbox.setToolTip(QCoreApplication.translate("MainWindow", u"Reverses the order of images. Useful for scanned film rolls where the last image (e.g., 36) is scanned first.", None))
+#endif // QT_CONFIG(tooltip)
self.revert_checkbox.setText(QCoreApplication.translate("MainWindow", u"Revert order", None))
self.filename.setText("")
- self.filename.setPlaceholderText(QCoreApplication.translate("MainWindow", u"Enter file name", None))
+ self.filename.setPlaceholderText(QCoreApplication.translate("MainWindow", u"Enter new File Names", None))
self.start_button.setText(QCoreApplication.translate("MainWindow", u"Convert", None))
+#if QT_CONFIG(tooltip)
+ self.insert_exif_Button.setToolTip(QCoreApplication.translate("MainWindow", u"Insert EXIF without modifying images.", None))
+#endif // QT_CONFIG(tooltip)
self.insert_exif_Button.setText(QCoreApplication.translate("MainWindow", u"Insert Exif", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_1), QCoreApplication.translate("MainWindow", u"Main", None))
- self.exif_group.setTitle(QCoreApplication.translate("MainWindow", u"EXIF EXPERIMENTAL", None))
- self.exif_checkbox.setText(QCoreApplication.translate("MainWindow", u"own exif", None))
- self.exif_copy_checkBox.setText(QCoreApplication.translate("MainWindow", u"copy exif", None))
- self.edit_exif_button.setText(QCoreApplication.translate("MainWindow", u"Edit Exif", None))
- self.exif_options_group.setTitle(QCoreApplication.translate("MainWindow", u"Must", None))
+ self.exif_group.setTitle(QCoreApplication.translate("MainWindow", u"EXIF Settings", None))
+#if QT_CONFIG(tooltip)
+ self.exif_checkbox.setToolTip(QCoreApplication.translate("MainWindow", u"Add your own EXIF data to the images with the selection from below.", None))
+#endif // QT_CONFIG(tooltip)
+ self.exif_checkbox.setText(QCoreApplication.translate("MainWindow", u"Custom EXIF", None))
+#if QT_CONFIG(tooltip)
+ self.exif_copy_checkBox.setToolTip(QCoreApplication.translate("MainWindow", u"Copy EXIF from the input data.", None))
+#endif // QT_CONFIG(tooltip)
+ self.exif_copy_checkBox.setText(QCoreApplication.translate("MainWindow", u"Copy EXIF", None))
+#if QT_CONFIG(tooltip)
+ self.edit_exif_button.setToolTip(QCoreApplication.translate("MainWindow", u"Open the EXIF Editor to add or remove metadata entries, making them available for selection.", None))
+#endif // QT_CONFIG(tooltip)
+ 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.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))
@@ -655,14 +712,26 @@ class Ui_MainWindow(object):
self.make_comboBox.setPlaceholderText("")
self.label_3.setText(QCoreApplication.translate("MainWindow", u"Model", None))
self.label_8.setText(QCoreApplication.translate("MainWindow", u"Copyright", None))
- self.gps_groupBox.setTitle(QCoreApplication.translate("MainWindow", u"GPS", None))
- self.gps_checkBox.setText(QCoreApplication.translate("MainWindow", u"add gps", None))
+ self.gps_groupBox.setTitle(QCoreApplication.translate("MainWindow", u"GPS Coordinates", None))
+#if QT_CONFIG(tooltip)
+ self.gps_checkBox.setToolTip(QCoreApplication.translate("MainWindow", u"From a Homepage like latlong.net", None))
+#endif // QT_CONFIG(tooltip)
+ self.gps_checkBox.setText(QCoreApplication.translate("MainWindow", u"Enable GPS Data", None))
+#if QT_CONFIG(tooltip)
+ self.lat_lineEdit.setToolTip(QCoreApplication.translate("MainWindow", u"Format: xx.xxxxxx (e.g., 57.618520)", None))
+#endif // QT_CONFIG(tooltip)
self.lat_lineEdit.setText("")
- self.lat_lineEdit.setPlaceholderText(QCoreApplication.translate("MainWindow", u"xx.xxxxxx latitude", None))
+ self.lat_lineEdit.setPlaceholderText(QCoreApplication.translate("MainWindow", u"Latitude", None))
+#if QT_CONFIG(tooltip)
+ self.long_lineEdit.setToolTip(QCoreApplication.translate("MainWindow", u"Format: xx.xxxxxx (e.g., -13.779602)", None))
+#endif // QT_CONFIG(tooltip)
self.long_lineEdit.setText("")
- self.long_lineEdit.setPlaceholderText(QCoreApplication.translate("MainWindow", u"xx.xxxxxx longitude", None))
- self.date_groupBox.setTitle(QCoreApplication.translate("MainWindow", u"Optional", None))
- self.add_date_checkBox.setText(QCoreApplication.translate("MainWindow", u"add date", None))
+ self.long_lineEdit.setPlaceholderText(QCoreApplication.translate("MainWindow", u"Longitude", None))
+ self.date_groupBox.setTitle(QCoreApplication.translate("MainWindow", u"Original Capture Data and Time", None))
+#if QT_CONFIG(tooltip)
+ self.add_date_checkBox.setToolTip(QCoreApplication.translate("MainWindow", u"Adds \"Date and Time (original)\" to the image, i.e. when the picture was taking.", None))
+#endif // QT_CONFIG(tooltip)
+ self.add_date_checkBox.setText(QCoreApplication.translate("MainWindow", u"Enable Timestamp", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), QCoreApplication.translate("MainWindow", u"EXIF", None))
self.menuHelp.setTitle(QCoreApplication.translate("MainWindow", u"Help", None))
self.menuSettings.setTitle(QCoreApplication.translate("MainWindow", u"Settings", None))
diff --git a/src/OptimaLab35/ui/main_window.ui b/src/OptimaLab35/ui/main_window.ui
index 62acda5..57986b7 100644
--- a/src/OptimaLab35/ui/main_window.ui
+++ b/src/OptimaLab35/ui/main_window.ui
@@ -63,6 +63,9 @@
0
+
+ Open a file browser to select a folder for loading images.
+
Input
@@ -83,6 +86,9 @@
-
+
+
+
@@ -99,6 +105,9 @@
0
+
+ Open a file browser to select a folder for saving images.
+
Output
@@ -116,7 +125,7 @@
- Essential group
+ Export Settings
-
@@ -148,13 +157,19 @@
-
+
+ Recommended for web use. Enables PIL optimization to slightly reduce file size without visible quality loss.
+
- optimize
+ Optimize
-
+
+
+
1
@@ -197,6 +212,9 @@
-
+
+ Select export file type.
+
-
jpg
@@ -232,6 +250,9 @@
-
+
+ Choose image scaling options. ⚠ Upscaling large images may freeze the system depending on hardware.
+
Resize
@@ -239,6 +260,9 @@
-
+
+
+
1
@@ -258,6 +282,9 @@
true
+
+
+
1
@@ -287,7 +314,7 @@
false
- Extra stuff
+ Image Adjustments
-
@@ -364,13 +391,19 @@
-
+
+ Converts image to Grayscale
+
- Turn image to Black and White
+ Black and White Mode
-
+
+ Open a preview window to see how brightness, contrast, and grayscale adjustments affect your image.
+
Preview
@@ -385,7 +418,7 @@
true
- Watermark
+ Watermarking
false
@@ -406,7 +439,7 @@
- Enter Watermark
+ Enter Watermark Text
@@ -419,6 +452,9 @@
-
+
+ Adjust the font size for the watermark. Size scales proportionally to image dimensions.
+
Normal
@@ -464,11 +500,14 @@
- files
+ File Naming
-
+
+ Enable to rename all images with a new base name. '_xx' will be added at the end of each filename.
+
Rename
@@ -479,6 +518,9 @@
false
+
+ Reverses the order of images. Useful for scanned film rolls where the last image (e.g., 36) is scanned first.
+
Revert order
@@ -493,7 +535,7 @@
- Enter file name
+ Enter new File Names
@@ -534,6 +576,9 @@
false
+
+ Insert EXIF without modifying images.
+
Insert Exif
@@ -552,7 +597,7 @@
-
- EXIF EXPERIMENTAL
+ EXIF Settings
-
@@ -560,15 +605,21 @@
true
+
+ Add your own EXIF data to the images with the selection from below.
+
- own exif
+ Custom EXIF
-
+
+ Copy EXIF from the input data.
+
- copy exif
+ Copy EXIF
@@ -577,8 +628,11 @@
true
+
+ Open the EXIF Editor to add or remove metadata entries, making them available for selection.
+
- Edit Exif
+ EXIF editor
@@ -591,7 +645,7 @@
false
- Must
+ Essential EXIF Info
-
@@ -738,13 +792,16 @@
false
- GPS
+ GPS Coordinates
-
+
+ From a Homepage like latlong.net
+
- add gps
+ Enable GPS Data
@@ -753,6 +810,9 @@
false
+
+ Format: xx.xxxxxx (e.g., 57.618520)
+
@@ -760,7 +820,7 @@
8
- xx.xxxxxx latitude
+ Latitude
@@ -769,6 +829,9 @@
false
+
+ Format: xx.xxxxxx (e.g., -13.779602)
+
@@ -776,7 +839,7 @@
8
- xx.xxxxxx longitude
+ Longitude
@@ -789,13 +852,16 @@
false
- Optional
+ Original Capture Data and Time
-
+
+ Adds "Date and Time (original)" to the image, i.e. when the picture was taking.
+
- add date
+ Enable Timestamp
@@ -814,6 +880,23 @@
1
+
+
+ 2038
+ 12
+ 31
+
+
+
+
+ 1970
+ 1
+ 1
+
+
+
+ true
+
diff --git a/src/OptimaLab35/ui/preview_window.py b/src/OptimaLab35/ui/preview_window.py
index f9f6d3e..5d2a021 100644
--- a/src/OptimaLab35/ui/preview_window.py
+++ b/src/OptimaLab35/ui/preview_window.py
@@ -40,23 +40,24 @@ class Ui_Preview_Window(object):
self.widget = QWidget(self.centralwidget)
self.widget.setObjectName(u"widget")
- self.widget.setMinimumSize(QSize(140, 628))
- self.widget.setMaximumSize(QSize(140, 16777215))
- self.verticalLayout_3 = QVBoxLayout(self.widget)
- self.verticalLayout_3.setObjectName(u"verticalLayout_3")
+ self.widget.setMinimumSize(QSize(150, 628))
+ self.widget.setMaximumSize(QSize(150, 16777215))
+ self.verticalLayout_4 = QVBoxLayout(self.widget)
+ self.verticalLayout_4.setObjectName(u"verticalLayout_4")
self.image_path_lineEdit = QLineEdit(self.widget)
self.image_path_lineEdit.setObjectName(u"image_path_lineEdit")
- self.verticalLayout_3.addWidget(self.image_path_lineEdit)
+ self.verticalLayout_4.addWidget(self.image_path_lineEdit)
self.load_Button = QPushButton(self.widget)
self.load_Button.setObjectName(u"load_Button")
- self.verticalLayout_3.addWidget(self.load_Button)
+ self.verticalLayout_4.addWidget(self.load_Button)
self.widget_2 = QWidget(self.widget)
self.widget_2.setObjectName(u"widget_2")
- self.widget_2.setMaximumSize(QSize(16777215, 120))
+ self.widget_2.setMinimumSize(QSize(0, 250))
+ self.widget_2.setMaximumSize(QSize(16777215, 250))
self.verticalLayout = QVBoxLayout(self.widget_2)
self.verticalLayout.setObjectName(u"verticalLayout")
self.label = QLabel(self.widget_2)
@@ -84,94 +85,75 @@ class Ui_Preview_Window(object):
self.verticalLayout.addWidget(self.reset_brightness_Button)
-
- self.verticalLayout_3.addWidget(self.widget_2)
-
- self.widget_3 = QWidget(self.widget)
- self.widget_3.setObjectName(u"widget_3")
- self.widget_3.setMaximumSize(QSize(16777215, 120))
- self.verticalLayout_2 = QVBoxLayout(self.widget_3)
- self.verticalLayout_2.setObjectName(u"verticalLayout_2")
- self.label_2 = QLabel(self.widget_3)
- self.label_2.setObjectName(u"label_2")
-
- self.verticalLayout_2.addWidget(self.label_2)
-
- self.contrast_spinBox = QSpinBox(self.widget_3)
- self.contrast_spinBox.setObjectName(u"contrast_spinBox")
- self.contrast_spinBox.setMinimum(-100)
- self.contrast_spinBox.setMaximum(100)
-
- self.verticalLayout_2.addWidget(self.contrast_spinBox)
-
- self.contrast_Slider = QSlider(self.widget_3)
+ self.contrast_Slider = QSlider(self.widget_2)
self.contrast_Slider.setObjectName(u"contrast_Slider")
self.contrast_Slider.setMinimum(-100)
self.contrast_Slider.setMaximum(100)
self.contrast_Slider.setOrientation(Qt.Horizontal)
- self.verticalLayout_2.addWidget(self.contrast_Slider)
+ self.verticalLayout.addWidget(self.contrast_Slider)
- self.reset_contrast_Button = QPushButton(self.widget_3)
+ self.contrast_spinBox = QSpinBox(self.widget_2)
+ self.contrast_spinBox.setObjectName(u"contrast_spinBox")
+ self.contrast_spinBox.setMinimum(-100)
+ self.contrast_spinBox.setMaximum(100)
+
+ self.verticalLayout.addWidget(self.contrast_spinBox)
+
+ self.label_2 = QLabel(self.widget_2)
+ self.label_2.setObjectName(u"label_2")
+
+ self.verticalLayout.addWidget(self.label_2)
+
+ self.reset_contrast_Button = QPushButton(self.widget_2)
self.reset_contrast_Button.setObjectName(u"reset_contrast_Button")
- self.verticalLayout_2.addWidget(self.reset_contrast_Button)
+ self.verticalLayout.addWidget(self.reset_contrast_Button)
-
- self.verticalLayout_3.addWidget(self.widget_3)
-
- self.grayscale_checkBox = QCheckBox(self.widget)
+ self.grayscale_checkBox = QCheckBox(self.widget_2)
self.grayscale_checkBox.setObjectName(u"grayscale_checkBox")
- self.verticalLayout_3.addWidget(self.grayscale_checkBox)
+ self.verticalLayout.addWidget(self.grayscale_checkBox)
- self.update_Button = QPushButton(self.widget)
- self.update_Button.setObjectName(u"update_Button")
- self.verticalLayout_3.addWidget(self.update_Button)
+ self.verticalLayout_4.addWidget(self.widget_2)
self.widget_5 = QWidget(self.widget)
self.widget_5.setObjectName(u"widget_5")
- self.verticalLayout_5 = QVBoxLayout(self.widget_5)
- self.verticalLayout_5.setObjectName(u"verticalLayout_5")
- self.label_4 = QLabel(self.widget_5)
- self.label_4.setObjectName(u"label_4")
- self.label_4.setWordWrap(True)
+ self.verticalLayout_2 = QVBoxLayout(self.widget_5)
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
- self.verticalLayout_5.addWidget(self.label_4)
-
- self.live_update = QCheckBox(self.widget_5)
- self.live_update.setObjectName(u"live_update")
-
- self.verticalLayout_5.addWidget(self.live_update)
-
-
- self.verticalLayout_3.addWidget(self.widget_5)
+ self.verticalLayout_4.addWidget(self.widget_5)
self.widget_4 = QWidget(self.widget)
self.widget_4.setObjectName(u"widget_4")
- self.verticalLayout_4 = QVBoxLayout(self.widget_4)
- self.verticalLayout_4.setObjectName(u"verticalLayout_4")
- self.label_3 = QLabel(self.widget_4)
- self.label_3.setObjectName(u"label_3")
- self.label_3.setScaledContents(False)
- self.label_3.setWordWrap(True)
+ self.verticalLayout_3 = QVBoxLayout(self.widget_4)
+ self.verticalLayout_3.setObjectName(u"verticalLayout_3")
+ self.live_update = QCheckBox(self.widget_4)
+ self.live_update.setObjectName(u"live_update")
- self.verticalLayout_4.addWidget(self.label_3)
+ self.verticalLayout_3.addWidget(self.live_update)
+
+ self.update_Button = QPushButton(self.widget_4)
+ self.update_Button.setObjectName(u"update_Button")
+ self.update_Button.setAutoFillBackground(False)
+
+ self.verticalLayout_3.addWidget(self.update_Button)
self.checkBox = QCheckBox(self.widget_4)
self.checkBox.setObjectName(u"checkBox")
+ self.checkBox.setLayoutDirection(Qt.LeftToRight)
self.checkBox.setChecked(True)
- self.verticalLayout_4.addWidget(self.checkBox)
+ self.verticalLayout_3.addWidget(self.checkBox)
self.close_Button = QPushButton(self.widget_4)
self.close_Button.setObjectName(u"close_Button")
- self.verticalLayout_4.addWidget(self.close_Button)
+ self.verticalLayout_3.addWidget(self.close_Button)
- self.verticalLayout_3.addWidget(self.widget_4)
+ self.verticalLayout_4.addWidget(self.widget_4)
self.horizontalLayout.addWidget(self.widget)
@@ -194,18 +176,40 @@ class Ui_Preview_Window(object):
def retranslateUi(self, Preview_Window):
Preview_Window.setWindowTitle(QCoreApplication.translate("Preview_Window", u"OptimaLab35 - Preview", None))
self.QLabel.setText("")
- self.image_path_lineEdit.setPlaceholderText(QCoreApplication.translate("Preview_Window", u"Path to image", None))
+#if QT_CONFIG(tooltip)
+ self.image_path_lineEdit.setToolTip(QCoreApplication.translate("Preview_Window", u"Enter the path to the image file or use the 'Select Image' button to browse.", None))
+#endif // QT_CONFIG(tooltip)
+ self.image_path_lineEdit.setPlaceholderText(QCoreApplication.translate("Preview_Window", u"Image Path", None))
self.load_Button.setText(QCoreApplication.translate("Preview_Window", u"Select image", None))
self.label.setText(QCoreApplication.translate("Preview_Window", u"Brightness", None))
+#if QT_CONFIG(tooltip)
+ self.reset_brightness_Button.setToolTip(QCoreApplication.translate("Preview_Window", u"Click to reset the brightness to its default value (0).", None))
+#endif // QT_CONFIG(tooltip)
self.reset_brightness_Button.setText(QCoreApplication.translate("Preview_Window", u"Reset", None))
self.label_2.setText(QCoreApplication.translate("Preview_Window", u"Contrast", None))
+#if QT_CONFIG(tooltip)
+ self.reset_contrast_Button.setToolTip(QCoreApplication.translate("Preview_Window", u"Click to reset the contrast to its default value (0).", None))
+#endif // QT_CONFIG(tooltip)
self.reset_contrast_Button.setText(QCoreApplication.translate("Preview_Window", u"Reset", None))
- self.grayscale_checkBox.setText(QCoreApplication.translate("Preview_Window", u"Grayscale", None))
- self.update_Button.setText(QCoreApplication.translate("Preview_Window", u"Update preview", None))
- self.label_4.setText(QCoreApplication.translate("Preview_Window", u"Update preview live might have large impact on system, especilly if image is large.", None))
+#if QT_CONFIG(tooltip)
+ self.grayscale_checkBox.setToolTip(QCoreApplication.translate("Preview_Window", u"Convert the image to grayscale (black and white).", None))
+#endif // QT_CONFIG(tooltip)
+ self.grayscale_checkBox.setText(QCoreApplication.translate("Preview_Window", u"Black n White", None))
+#if QT_CONFIG(tooltip)
+ self.live_update.setToolTip(QCoreApplication.translate("Preview_Window", u"Enable live updates to immediately preview changes as you adjust brightness, contrast, or grayscale. Be aware that this might impact performance, especially with large images.", None))
+#endif // QT_CONFIG(tooltip)
self.live_update.setText(QCoreApplication.translate("Preview_Window", u"Live update", None))
- self.label_3.setText(QCoreApplication.translate("Preview_Window", u"Copy values to main window when closing", None))
+#if QT_CONFIG(tooltip)
+ self.update_Button.setToolTip(QCoreApplication.translate("Preview_Window", u"Apply Changes to Preview", None))
+#endif // QT_CONFIG(tooltip)
+ self.update_Button.setText(QCoreApplication.translate("Preview_Window", u"Update Preview", None))
+#if QT_CONFIG(tooltip)
+ self.checkBox.setToolTip(QCoreApplication.translate("Preview_Window", u"Enable to copy adjustments to the main window upon closing", None))
+#endif // QT_CONFIG(tooltip)
self.checkBox.setText(QCoreApplication.translate("Preview_Window", u"Copy Values", None))
+#if QT_CONFIG(tooltip)
+ self.close_Button.setToolTip("")
+#endif // QT_CONFIG(tooltip)
self.close_Button.setText(QCoreApplication.translate("Preview_Window", u"Close", None))
# retranslateUi
diff --git a/src/OptimaLab35/ui/preview_window.ui b/src/OptimaLab35/ui/preview_window.ui
index 6bd17b7..33ad094 100644
--- a/src/OptimaLab35/ui/preview_window.ui
+++ b/src/OptimaLab35/ui/preview_window.ui
@@ -44,21 +44,24 @@
- 140
+ 150
628
- 140
+ 150
16777215
-
+
-
+
+ Enter the path to the image file or use the 'Select Image' button to browse.
+
- Path to image
+ Image Path
@@ -71,10 +74,16 @@
-
+
+
+ 0
+ 250
+
+
16777215
- 120
+ 250
@@ -110,40 +119,14 @@
-
+
+ Click to reset the brightness to its default value (0).
+
Reset
-
-
-
- -
-
-
-
- 16777215
- 120
-
-
-
-
-
-
-
- Contrast
-
-
-
- -
-
-
- -100
-
-
- 100
-
-
-
-
@@ -157,71 +140,85 @@
+ -
+
+
+ -100
+
+
+ 100
+
+
+
+ -
+
+
+ Contrast
+
+
+
-
+
+ Click to reset the contrast to its default value (0).
+
Reset
+ -
+
+
+ Convert the image to grayscale (black and white).
+
+
+ Black n White
+
+
+
- -
-
-
- Grayscale
-
-
-
- -
-
-
- Update preview
-
-
-
-
-
-
-
-
-
- Update preview live might have large impact on system, especilly if image is large.
-
-
- true
-
-
-
+
+
+
+ -
+
+
-
+
+ Enable live updates to immediately preview changes as you adjust brightness, contrast, or grayscale. Be aware that this might impact performance, especially with large images.
+
Live update
-
-
-
- -
-
-
-
-
-
- Copy values to main window when closing
+
+
+ Apply Changes to Preview
-
+
false
-
- true
+
+ Update Preview
-
+
+ Enable to copy adjustments to the main window upon closing
+
+
+ Qt::LeftToRight
+
Copy Values
@@ -232,6 +229,9 @@
-
+
+
+
Close