# Changelog

## 1.3.x
### 1.3.0: Feature – Write Adjustments into EXIF
- Changes to contrast and brightness are now recorded in the EXIF comment section (labeled *Scanner* in the program).
- This allows users to track what adjustments were made to an image.

---

## 1.2.x
### 1.2.2: Patch - Pyproject file (25.03.23)
- Fixed `Development Status` Classifier
- Added <4.0 python version

### 1.2.1: Patch - Changelog file (25.03.23)
- Patches formation in changelog file.

### 1.2.0: Refactor - Splitting Classes into Separate Files (25.03.23)
- Refactored `gui.py`, which previously contained almost all the code, into multiple files.
- Each window's logic is now in its own file, improving code organization.
- Window layouts remain in `.ui` folder, while their logic is now properly separated.

## 1.1.x
### 1.1.0: Feature - New Function in Preview Window (25.03.23)
- Added a new feature to the preview window: **Hold a button to temporarily view the original (unedited) image.** This makes it easier to compare changes.
- Minor UI adjustments.

---

## 1.0.x (25.03.06)
### 1.0.1: Fixed spelling
- Fixes spelling some places

### 1.0.0: Fix version bump
- Version was not bumped correctly

---

## 0.15.1: Final Polish (25.03.06)
- Fixed a bug where the GPS field being empty but selected caused issues.
- EXIF insertion is now canceled if any image in the folder does not end with a number.
- Minor GUI adjustments for a more polished experience.
- Disabled preview adjustment controls until an image is loaded to prevent errors.

## 0.15.0: Preview Image Resizing Update (25.02.12)
- Added the ability to change the preview image size dynamically.
- Previously, the image was processed and displayed at its original size, causing lag or unresponsiveness when adjusting the slider.
- Reducing the processed image size should help improve performance.
- Default preview image size is now **25%**, but users can adjust it between **10% and 100%**.

---

## 0.14.x
### 0.14.1: Patch changelog (25.02.12)
- Updated the changelog to include missing entries.

### 0.14.0: Code refactor (by Mr. Finch) (25.02.11)
- Introduced constants and optimized the code.

## 0.13.x (25.02.11)
### 0.13.1: Fixed image processing
- Fixed a bug that made it impossible to process images.

### 0.13.0: Requirements file (by Mr. Finch)
- Added a requirements file.

---

## 0.12.x
### 0.12.6: Disabled app restart on Windows (25.02.11)
- The app can not restart properly on Windows, so the restart button has been hidden when the OS is `nt`.
- Also updated tool tip to indicate that changing theme requeres are restart.

### 0.12.5: Fixed EXIF File Generation Bug (25.02.10)
- Fixed a bug where the application failed to generate a new default EXIF file if none was available. Now, the file is correctly created when missing.

### 0.12.4: Updated README (25.02.10)
- The README file (project description) now includes updates description and screenshots.

### 0.12.3: UI Adjustments (25.02.10)
- Minor changes to maintain a unified layout across all windows.
- Added option to sync app theme with OS (if supported).
- Set auto theme as the default value.

### 0.12.2: Minor UI Improvements for Theme Compatibility (25.02.10)
- Fixed text clipping issues when using the new theme options.

### 0.12.1: Removed Unnecessary Debug Prints (25.02.09)
- Removed leftover debug statements.

### 0.12.0: New Settings Menu & Patches (25.02.09)
- **New Settings Window:**
  - The updater window has been reworked into a settings window.
  - **Initial settings (first tab) include:**
    1. Option to change the theme (with an optional dependency installation).
    2. Reset selectable EXIF data to default.
  - The updater UI has been moved to the second tab.
    - Added a link to the changelog for easier access to update details.

- **Patches:**
  - Fixed an issue where links in labels (About window) did not open a browser.
  - Added a changelog link in the About window.
  - Minor changes to `utility.py` to handle settings.

---

## 0.11.x (25.02.05)
### 0.11.1: Fixed pipeline
- Fixed pipeline publish error

### 0.11.0: Refactor and Patches
- Fixed an issue with the updater: The updater window wouldn't start if the `updater_log.json` file was missing or lacked a valid last `time.time()` float value.
- Corrected layout issues in the preview window, repositioning elements to their proper places.
- Added an application icon (may not work on all desktop environments).
- Refactored code to reduce the size of the PyPi package by removing unnecessary folders.

---

## 0.10.x (25.02.04)
### 0.10.1: Fixed Updater
- Fixed an issue where the updater was permanently disabled.

### 0.10.0: Multithreading for Preview Window
- The preview window now processes images in a separate thread, and live update preview is enabled by default.
  - This improves UI responsiveness.
  - The image now resizes dynamically to fit the window when the window size changes.
- Minor UI improvements.

---

## 0.9.x
### 0.9.2: Enhanced updater
- Minor enhancments for the updater

### 0.9.1: Patch for Unsuccessful Successful Update
- Addressed a rare issue where the package did not update correctly using the updater.
  - Unable to reproduce, but it may have been related to an older version and the restart process.
- Added developer functions to test the updater without requiring a published release.

### 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.

### 0.8.4: Minor Enhancements & Cleanup
- Updated window titles.
- Improved error handling for updater: now displays the specific error message instead of just **"error"** when an issue occurs during update checks.
- Ensured all child windows close when the main window is closed.

### 0.8.3: Fix – OptimaLab35 Not Closing After Update
- Fixed an issue where **OptimaLab35** would not close properly when updating, resulting in an unresponsive instance and multiple running processes.

### 0.8.2: Patch for New PyPiUpdater Version
- Updated to support **PyPiUpdater 0.4.0**.
- Now stores version information locally, preventing an "unknown" state on the first updater launch.
  - Users still need to press the **Update** button to verify the latest version, ensuring an internet connection is available.

### 0.8.1: Fix
- Fixed a misspelling of `PyPiUpdater` in the build file, which prevented v0.8.0 from being installed.

### 0.8.0: Updater Feature
- Added an updater function utilizing my new package [PyPiUpdater](https://gitlab.com/CodeByMrFinchum/PyPiUpdater).
- New updater window displaying the local version and checking for updates online.
- Added an option to update and restart the app from the menu.

---

## 0.7.0: Enhanced Preview
- Images loaded into the preview window are now scaled while maintaining aspect ratio.
- Added live updates: changes to brightness, contrast, or grayscale are applied immediately.
  - This may crush the system depending on image size and system specifications.
- Removed Settings from menuBar, and extended the about window.

---

## 0.6.0: Initial Flatpak Support
- Started Flatpak package building.
- Not added to Flathub yet, as only stable software is hosted there.
- Not fully completed, icon, name, and description are included, but the version is missing for some reason.
- Local build and installation work. The Bash script `build_flatpak.sh` in the `flatpak/` directory generates all pip dependencies, then builds and installs the app locally.
- `requirements-parser` has to be installed from pip to finish installing the flatpak (maybe more pypi packages..)

---

## 0.5.0
- Removed all leftover of tui code that was hiding in some classes.

---

## 0.4.0
- Fixed a critical issue that prevented the program from functioning.
- Updated compatibility to align with the **upcoming** optima35 **release**.

**Removal of TUI:**
- The TUI version is no longer compatible with optima35 v1.0.
- Maintaining two UIs has become too time-consuming, as the primary focus is on the GUI, which provides the best user experience. Recently, the TUI version was only receiving patches without any meaningful enhancements.

---

## 0.3.x
### 0.3.7: prepear for optima35 release
- Added a maximum version of dependencies list.

### 0.3.6: Patch
- Added check if any exif options are empty.
- Also made the exif editor aviable without checking the exif box.

### 0.3.5: Fix
- Fixed an issue where renaming images, while converting could result in wrong numbering.

### 0.3.1 - 0.3.4
- Repo only: Fix building pipeline

### 0.3.0
- Repo only: adding pipeline

---

## 0.2.x
### 0.2.3
- Refactored code for improved readability.

### 0.2.2
- Moved processing images into a different thread, making the UI responsiable while processing

### 0.2.1
- Insert exif to image file (i.e. without changing the file).

### 0.2.0
- Now spaces in rename string are replaces with `_`.
- version check of `optima35`, incase pip did not update it.
- Sorting entries from exif file.

### 0.2.0-a1
- Main UI received a facelift.
- Added a new experimental preview window to display an image and show how changing values affects it.
- Programm now warns for potential overwrite of existing files.

---

## 0.1.x
### 0.1.1
- Update metadata, preview, readme, bump in version for pip

### 0.1.0
- Preserved the current working GUI by pinning `optima35` to a specific version for guaranteed compatibility.

---

## 0.0.x
### 0.0.4-a2
- Adding __version__ to `__init__.py` so version is automaticly updated in program as well as pypi.

### 0.0.4-a1
- Refactored project structure, moving all code to the `src` directory.
- Adjusted imports and setup to accommodate the new folder structure.
- Skipped version numbers to `.4` due to PyPI versioning constraints (testing purposes).

### 0.0.1 - Initial UI-Focused Release
- Forked from OPTIMA35.
- Removed core OPTIMA35 files to focus exclusively on UI components.
- Integrated OPTIMA35 functionality via the pip package.
- Ensured both TUI and GUI modes operate seamlessly.
- Revised the README for improved clarity and structure.
