feat: ui improvments
|
@ -1,5 +1,14 @@
|
|||
# Changelog
|
||||
|
||||
## 0.9.x
|
||||
### 0.9.0: UI Enhancements and Language Refinements
|
||||
- Changed text, labels, buttons, and checkboxes for clearer understanding.
|
||||
- Improved UI language to make the interface easier to navigate.
|
||||
- Added tooltips for more helpful information and guidance.
|
||||
- Updates applied across the main window (both tabs) and the preview window.
|
||||
|
||||
---
|
||||
|
||||
## 0.8.x
|
||||
### 0.8.5: Patch for New PyPiUpdater Version
|
||||
- **PyPiUpdater 0.5** introduced breaking changes; adjusted code to ensure compatibility with the new version.
|
||||
|
|
37
README.md
|
@ -1,5 +1,5 @@
|
|||
# **OptimaLab35**
|
||||
_Last updated: 28 Jan 2025_
|
||||
_Last updated: 02 Feb 2025 (v.0.9.0)_
|
||||
|
||||
## **Overview**
|
||||
|
||||
|
@ -10,13 +10,12 @@ It serves as a GUI for the [OPTIMA35 library](https://gitlab.com/CodeByMrFinchum
|
|||
---
|
||||
|
||||
## **Current Status**
|
||||
### **Alpha Stage**
|
||||
### **Early Development**
|
||||
OptimaLab35 is actively developed using **PySide6** and **Qt**, providing a modern interface for **OPTIMA35**.
|
||||
|
||||
OptimaLab35 is built using **PySide6** and **Qt**, offering a modern and flexible interface for **OPTIMA35**.
|
||||
The program is still in its early stages, and features may change drastically over time. Some features might be added but later removed if they don't prove useful. Expect significant changes to the UI and functionality between updates.
|
||||
|
||||
The program is under **active development**, and while versions released on PyPI should not contain major bugs, occasional issues may arise.
|
||||
|
||||
For the most accurate and detailed update information, please refer to the well-maintained [**CHANGELOG**](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/blob/main/CHANGELOG.md), as this README may occasionally lag behind the latest updates.
|
||||
For the most accurate and detailed update information, please refer to the [**CHANGELOG**](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/blob/main/CHANGELOG.md) as the readme might lack behind.
|
||||
|
||||
---
|
||||
|
||||
|
@ -28,8 +27,8 @@ For the most accurate and detailed update information, please refer to the well-
|
|||
- Adjust brightness and contrast
|
||||
- Add customizable text-based watermarks
|
||||
|
||||
### **Image preview**
|
||||
- Load a single image and see how change in brightness and contrast changes the image
|
||||
### **Image Preview**
|
||||
- Load a single image and see how changes in brightness and contrast affect the image
|
||||
|
||||
### **EXIF Management**
|
||||
- Add EXIF data using a simple dictionary
|
||||
|
@ -39,6 +38,10 @@ For the most accurate and detailed update information, please refer to the well-
|
|||
- Automatically adjust EXIF timestamps based on image file names
|
||||
- Add GPS coordinates to images
|
||||
|
||||
### **Updater**
|
||||
- Checks for updates on PyPI, automatically downloads and installs the latest version
|
||||
- Restarts the program after update
|
||||
|
||||
---
|
||||
|
||||
## **Installation**
|
||||
|
@ -50,17 +53,13 @@ pip install OptimaLab35
|
|||
|
||||
---
|
||||
|
||||
## Preview GUI
|
||||
## Preview GUI **0.9.0**
|
||||
**PREVIEW** might be out of date.
|
||||
|
||||
**Main tab**
|
||||
|
||||
{width=40%}
|
||||
|
||||
**Preview window**
|
||||
|
||||
{width=40%}
|
||||
|
||||
**Exif tab**
|
||||
|
||||
{width=40%}
|
||||
|
@ -69,6 +68,18 @@ pip install OptimaLab35
|
|||
|
||||
{width=40%}
|
||||
|
||||
**Preview window**
|
||||
|
||||
{width=40%}
|
||||
|
||||
**About**
|
||||
|
||||
{width=40%}
|
||||
|
||||
**Updater**
|
||||
|
||||
{width=40%}
|
||||
|
||||
---
|
||||
|
||||
# Use of LLMs
|
||||
|
|
BIN
media/about_window.png
Normal file
After Width: | Height: | Size: 293 KiB |
Before Width: | Height: | Size: 218 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 222 KiB |
Before Width: | Height: | Size: 93 KiB |
Before Width: | Height: | Size: 210 KiB After Width: | Height: | Size: 220 KiB |
Before Width: | Height: | Size: 1.9 MiB After Width: | Height: | Size: 2.4 MiB |
BIN
media/updater_window.png
Normal file
After Width: | Height: | Size: 91 KiB |
|
@ -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))
|
||||
|
|
|
@ -63,6 +63,9 @@
|
|||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Open a file browser to select a folder for loading images.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string extracomment="Comment?">Input</string>
|
||||
</property>
|
||||
|
@ -83,6 +86,9 @@
|
|||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLineEdit" name="input_path">
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
|
@ -99,6 +105,9 @@
|
|||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Open a file browser to select a folder for saving images.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Output</string>
|
||||
</property>
|
||||
|
@ -116,7 +125,7 @@
|
|||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Essential group</string>
|
||||
<string>Export Settings</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="4" column="0">
|
||||
|
@ -148,13 +157,19 @@
|
|||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QCheckBox" name="optimize_checkBox">
|
||||
<property name="toolTip">
|
||||
<string>Recommended for web use. Enables PIL optimization to slightly reduce file size without visible quality loss. </string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>optimize</string>
|
||||
<string>Optimize</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QSlider" name="png_quality_Slider">
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
|
@ -197,6 +212,9 @@
|
|||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QComboBox" name="image_type">
|
||||
<property name="toolTip">
|
||||
<string>Select export file type.</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string notr="true">jpg</string>
|
||||
|
@ -232,6 +250,9 @@
|
|||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="toolTip">
|
||||
<string>Choose image scaling options. ⚠ Upscaling large images may freeze the system depending on hardware.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Resize</string>
|
||||
</property>
|
||||
|
@ -239,6 +260,9 @@
|
|||
</item>
|
||||
<item row="5" column="2">
|
||||
<widget class="QSlider" name="resize_Slider">
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
|
@ -258,6 +282,9 @@
|
|||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
|
@ -287,7 +314,7 @@
|
|||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Extra stuff</string>
|
||||
<string>Image Adjustments</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="1" column="0">
|
||||
|
@ -364,13 +391,19 @@
|
|||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="grayscale_checkBox">
|
||||
<property name="toolTip">
|
||||
<string>Converts image to Grayscale</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Turn image to Black and White</string>
|
||||
<string>Black and White Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="2">
|
||||
<widget class="QPushButton" name="preview_Button">
|
||||
<property name="toolTip">
|
||||
<string>Open a preview window to see how brightness, contrast, and grayscale adjustments affect your image.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Preview</string>
|
||||
</property>
|
||||
|
@ -385,7 +418,7 @@
|
|||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Watermark</string>
|
||||
<string>Watermarking</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>false</bool>
|
||||
|
@ -406,7 +439,7 @@
|
|||
<string/>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Enter Watermark</string>
|
||||
<string>Enter Watermark Text</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -419,6 +452,9 @@
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="font_size_comboBox">
|
||||
<property name="toolTip">
|
||||
<string>Adjust the font size for the watermark. Size scales proportionally to image dimensions.</string>
|
||||
</property>
|
||||
<property name="currentText">
|
||||
<string>Normal</string>
|
||||
</property>
|
||||
|
@ -464,11 +500,14 @@
|
|||
</size>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>files</string>
|
||||
<string>File Naming</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_6">
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="rename_checkbox">
|
||||
<property name="toolTip">
|
||||
<string>Enable to rename all images with a new base name. '_xx' will be added at the end of each filename.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Rename</string>
|
||||
</property>
|
||||
|
@ -479,6 +518,9 @@
|
|||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Reverses the order of images. Useful for scanned film rolls where the last image (e.g., 36) is scanned first.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Revert order</string>
|
||||
</property>
|
||||
|
@ -493,7 +535,7 @@
|
|||
<string/>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Enter file name</string>
|
||||
<string>Enter new File Names</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -534,6 +576,9 @@
|
|||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Insert EXIF without modifying images.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Insert Exif</string>
|
||||
</property>
|
||||
|
@ -552,7 +597,7 @@
|
|||
<item>
|
||||
<widget class="QGroupBox" name="exif_group">
|
||||
<property name="title">
|
||||
<string>EXIF EXPERIMENTAL</string>
|
||||
<string>EXIF Settings</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
|
@ -560,15 +605,21 @@
|
|||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Add your own EXIF data to the images with the selection from below.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>own exif</string>
|
||||
<string>Custom EXIF</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="exif_copy_checkBox">
|
||||
<property name="toolTip">
|
||||
<string>Copy EXIF from the input data.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>copy exif</string>
|
||||
<string>Copy EXIF</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -577,8 +628,11 @@
|
|||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Open the EXIF Editor to add or remove metadata entries, making them available for selection.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Edit Exif</string>
|
||||
<string>EXIF editor</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -591,7 +645,7 @@
|
|||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Must</string>
|
||||
<string>Essential EXIF Info</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_7">
|
||||
<item row="3" column="0">
|
||||
|
@ -738,13 +792,16 @@
|
|||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>GPS</string>
|
||||
<string>GPS Coordinates</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="gps_checkBox">
|
||||
<property name="toolTip">
|
||||
<string>From a Homepage like latlong.net</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>add gps</string>
|
||||
<string>Enable GPS Data</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -753,6 +810,9 @@
|
|||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Format: xx.xxxxxx (e.g., 57.618520)</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
|
@ -760,7 +820,7 @@
|
|||
<number>8</number>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>xx.xxxxxx latitude</string>
|
||||
<string>Latitude</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -769,6 +829,9 @@
|
|||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Format: xx.xxxxxx (e.g., -13.779602)</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
|
@ -776,7 +839,7 @@
|
|||
<number>8</number>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>xx.xxxxxx longitude</string>
|
||||
<string>Longitude</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -789,13 +852,16 @@
|
|||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Optional</string>
|
||||
<string>Original Capture Data and Time</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="add_date_checkBox">
|
||||
<property name="toolTip">
|
||||
<string>Adds "Date and Time (original)" to the image, i.e. when the picture was taking.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>add date</string>
|
||||
<string>Enable Timestamp</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -814,6 +880,23 @@
|
|||
<day>1</day>
|
||||
</datetime>
|
||||
</property>
|
||||
<property name="maximumDate">
|
||||
<date>
|
||||
<year>2038</year>
|
||||
<month>12</month>
|
||||
<day>31</day>
|
||||
</date>
|
||||
</property>
|
||||
<property name="minimumDate">
|
||||
<date>
|
||||
<year>1970</year>
|
||||
<month>1</month>
|
||||
<day>1</day>
|
||||
</date>
|
||||
</property>
|
||||
<property name="calendarPopup">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -44,21 +44,24 @@
|
|||
<widget class="QWidget" name="widget" native="true">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>140</width>
|
||||
<width>150</width>
|
||||
<height>628</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>140</width>
|
||||
<width>150</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="image_path_lineEdit">
|
||||
<property name="toolTip">
|
||||
<string>Enter the path to the image file or use the 'Select Image' button to browse.</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>Path to image</string>
|
||||
<string>Image Path</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -71,10 +74,16 @@
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_2" native="true">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>250</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>120</height>
|
||||
<height>250</height>
|
||||
</size>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
|
@ -110,40 +119,14 @@
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="reset_brightness_Button">
|
||||
<property name="toolTip">
|
||||
<string>Click to reset the brightness to its default value (0).</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Reset</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_3" native="true">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>120</height>
|
||||
</size>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Contrast</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="contrast_spinBox">
|
||||
<property name="minimum">
|
||||
<number>-100</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSlider" name="contrast_Slider">
|
||||
<property name="minimum">
|
||||
|
@ -157,71 +140,85 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="contrast_spinBox">
|
||||
<property name="minimum">
|
||||
<number>-100</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Contrast</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="reset_contrast_Button">
|
||||
<property name="toolTip">
|
||||
<string>Click to reset the contrast to its default value (0).</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Reset</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="grayscale_checkBox">
|
||||
<property name="toolTip">
|
||||
<string>Convert the image to grayscale (black and white).</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Black n White</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="grayscale_checkBox">
|
||||
<property name="text">
|
||||
<string>Grayscale</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="update_Button">
|
||||
<property name="text">
|
||||
<string>Update preview</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_5" native="true">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Update preview live might have large impact on system, especilly if image is large.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2"/>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_4" native="true">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="live_update">
|
||||
<property name="toolTip">
|
||||
<string>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.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Live update</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_4" native="true">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Copy values to main window when closing</string>
|
||||
<widget class="QPushButton" name="update_Button">
|
||||
<property name="toolTip">
|
||||
<string>Apply Changes to Preview</string>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
<property name="text">
|
||||
<string>Update Preview</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkBox">
|
||||
<property name="toolTip">
|
||||
<string>Enable to copy adjustments to the main window upon closing</string>
|
||||
</property>
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::LeftToRight</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Copy Values</string>
|
||||
</property>
|
||||
|
@ -232,6 +229,9 @@
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="close_Button">
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Close</string>
|
||||
</property>
|
||||
|
|