From 63422ccd88b60b72b545bad1b1dd9b0fecdd94f8 Mon Sep 17 00:00:00 2001 From: Mr Finchum Date: Sun, 30 Mar 2025 19:29:54 +0200 Subject: [PATCH 1/7] fix: fixed app path --- CHANGELOG.md | 3 +++ src/OptimaLab35/utils/utility.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10fef5e..c498256 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Changelog ## 1.3.x +### 1.3.2 Fix - Fixed problem with app folders +- Fixed a problem that the app folder path was not generated correctly. + ### 1.3.1: Fix - Fixed insert exif not working - Fixed the feature that inserted exif into images without modifying them. diff --git a/src/OptimaLab35/utils/utility.py b/src/OptimaLab35/utils/utility.py index 75726a0..3f71698 100644 --- a/src/OptimaLab35/utils/utility.py +++ b/src/OptimaLab35/utils/utility.py @@ -3,7 +3,7 @@ import os class Utilities: def __init__(self, app_folder_path): - self.folder_path = app_folder_path + self.folder_path = os.path.expanduser(app_folder_path) self._ensure_program_folder_exists() self.exif_path = os.path.expanduser(f"{app_folder_path}/exif.yaml") self.settings_path = os.path.expanduser(f"{app_folder_path}/settings.yaml") From 419dc1eada320b972fc01c2b0671f33266fbc8f8 Mon Sep 17 00:00:00 2001 From: Mr Finchum Date: Tue, 1 Apr 2025 16:30:21 +0000 Subject: [PATCH 2/7] patch: better performance for preview window --- .gitignore | 1 + CHANGELOG.md | 12 +++++++++--- src/OptimaLab35/previewWindow.py | 9 ++++----- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 7a56971..e8383c6 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ dist/ __pycache__/ .flatpak-builder/ flatpak-build-dir/ +*.jpg diff --git a/CHANGELOG.md b/CHANGELOG.md index c498256..77ca8c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,19 @@ # Changelog ## 1.3.x -### 1.3.2 Fix - Fixed problem with app folders +### 1.3.3: Patch – Increased Preview Performance x2 +- Reduced preview stutter: Previously, the image was updated twice when changing brightness or contrast. Now, it updates only once, improving performance by 100%. +- There is still room for improvement. Analysis shows that image processing takes the most time, while displaying in Qt is relatively fast. Reducing the image size impacts performance, so resizing to 50% is a good idea. +- There is an issue where `QRunner` does not always finish in the correct order when brightness or contrast values are changed rapidly. ATM I do not know how to fix this easly. +- The "Preview" watermark now displays the brightness and contrast levels of the shown image. + +### 1.3.2 Fix - Fixed problem with app folders (25.03.30) - Fixed a problem that the app folder path was not generated correctly. -### 1.3.1: Fix - Fixed insert exif not working +### 1.3.1: Fix - Fixed insert exif not working (25.03.27) - Fixed the feature that inserted exif into images without modifying them. -### 1.3.0: Feature – Write Adjustments into EXIF +### 1.3.0: Feature – Write Adjustments into EXIF (25.03.24) - 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. diff --git a/src/OptimaLab35/previewWindow.py b/src/OptimaLab35/previewWindow.py index 72469be..8f0a656 100644 --- a/src/OptimaLab35/previewWindow.py +++ b/src/OptimaLab35/previewWindow.py @@ -50,10 +50,8 @@ class PreviewWindow(QMainWindow, Ui_Preview_Window): self.ui.reset_contrast_Button.clicked.connect(lambda: self.ui.contrast_spinBox.setValue(0)) # Connect UI elements to `on_ui_change` - self.ui.brightness_spinBox.valueChanged.connect(self.on_ui_change) - self.ui.brightness_Slider.valueChanged.connect(self.on_ui_change) - self.ui.contrast_spinBox.valueChanged.connect(self.on_ui_change) - self.ui.contrast_Slider.valueChanged.connect(self.on_ui_change) + self.ui.brightness_spinBox.valueChanged.connect(self.on_ui_change) # brightness slider changes spinbox value, do not need an event for the slider + self.ui.contrast_spinBox.valueChanged.connect(self.on_ui_change) # contrast slider changes spinbox value, do not need an event for the slider self.ui.grayscale_checkBox.stateChanged.connect(self.on_ui_change) self.ui_elements(False) self.ui.show_OG_Button.pressed.connect(self.show_OG_image) @@ -154,7 +152,8 @@ class ImageProcessorWorker(QRunnable): try: img = self.optima_manager.process_image_object( image_input_file = self.path, - watermark = "PREVIEW", + watermark = f"PREVIEW B:{self.brightness} S:{self.contrast}", + font_size = 1, resize = self.resize, grayscale = self.grayscale, brightness = self.brightness, From d4e8a25b1e53febfab8919edf96a9358cde75920 Mon Sep 17 00:00:00 2001 From: Mr Finchum Date: Tue, 1 Apr 2025 18:37:11 +0200 Subject: [PATCH 3/7] fix: fixed misspelling --- CHANGELOG.md | 7 +++++-- src/OptimaLab35/previewWindow.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77ca8c9..eec392a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,16 @@ # Changelog ## 1.3.x -### 1.3.3: Patch – Increased Preview Performance x2 +### 1.3.4: Fix - Spelling (25.04.01) +- Fixed misspelling in preview window. + +### 1.3.3: Patch – Increased Preview Performance x2 (25.04.01) - Reduced preview stutter: Previously, the image was updated twice when changing brightness or contrast. Now, it updates only once, improving performance by 100%. - There is still room for improvement. Analysis shows that image processing takes the most time, while displaying in Qt is relatively fast. Reducing the image size impacts performance, so resizing to 50% is a good idea. - There is an issue where `QRunner` does not always finish in the correct order when brightness or contrast values are changed rapidly. ATM I do not know how to fix this easly. - The "Preview" watermark now displays the brightness and contrast levels of the shown image. -### 1.3.2 Fix - Fixed problem with app folders (25.03.30) +### 1.3.2: Fix - Fixed problem with app folders (25.03.30) - Fixed a problem that the app folder path was not generated correctly. ### 1.3.1: Fix - Fixed insert exif not working (25.03.27) diff --git a/src/OptimaLab35/previewWindow.py b/src/OptimaLab35/previewWindow.py index 8f0a656..82161d2 100644 --- a/src/OptimaLab35/previewWindow.py +++ b/src/OptimaLab35/previewWindow.py @@ -152,7 +152,7 @@ class ImageProcessorWorker(QRunnable): try: img = self.optima_manager.process_image_object( image_input_file = self.path, - watermark = f"PREVIEW B:{self.brightness} S:{self.contrast}", + watermark = f"PREVIEW B:{self.brightness} C:{self.contrast}", font_size = 1, resize = self.resize, grayscale = self.grayscale, From 011249e00295a0a7b3d997f7e7a766df6e3069ef Mon Sep 17 00:00:00 2001 From: Mr Finchum Date: Fri, 11 Apr 2025 13:34:29 +0200 Subject: [PATCH 4/7] ci: switch to woodpecker ci. --- .woodpecker/woodpecker_ci.yml | 92 +++++++++++++++++++++++++++++++++++ README.md | 24 ++++----- pip_README.md | 4 +- 3 files changed, 107 insertions(+), 13 deletions(-) create mode 100644 .woodpecker/woodpecker_ci.yml diff --git a/.woodpecker/woodpecker_ci.yml b/.woodpecker/woodpecker_ci.yml new file mode 100644 index 0000000..6d0cfd5 --- /dev/null +++ b/.woodpecker/woodpecker_ci.yml @@ -0,0 +1,92 @@ +steps: + - name: gitversion + depends_on: [] # nothing start emititly + when: + event: push + branch: main + image: mcr.microsoft.com/dotnet/sdk:9.0 + environment: + CI_TOKEN: + from_secret: CI_TOKEN + commands: + - git remote set-url origin https://CodeByMrFinchum:$CI_TOKEN@code.boxyfoxy.net/$CI_REPO.git + - git fetch --unshallow --tags + - apt-get update && apt-get install -y jq + - dotnet tool install --global GitVersion.Tool --version 5.* + - export PATH="$PATH:/root/.dotnet/tools" + - dotnet-gitversion -output json > version.json + - ls + - cat version.json + - | + echo "GitVersion_SemVer=$(jq -r '.SemVer' version.json)" >> gitversion.env + echo "GitVersion_LegacySemVer=$(jq -r '.LegacySemVer' version.json)" >> gitversion.env + echo "GitVersion_FullSemVer=$(jq -r '.FullSemVer' version.json)" >> gitversion.env + echo "GitVersion_Major=$(jq -r '.Major' version.json)" >> gitversion.env + echo "GitVersion_Minor=$(jq -r '.Minor' version.json)" >> gitversion.env + echo "GitVersion_Patch=$(jq -r '.Patch' version.json)" >> gitversion.env + echo "GitVersion_MajorMinorPatch=$(jq -r '.MajorMinorPatch' version.json)" >> gitversion.env + echo "GitVersion_BuildMetaData=$(jq -r '.BuildMetaData' version.json)" >> gitversion.env + + - name: tagging + depends_on: [gitversion] + when: + event: push + branch: main + image: alpine/git + environment: + CI_TOKEN: + from_secret: CI_TOKEN + commands: + - ls + - cat gitversion.env + - git config --global user.email "ci@noreply.boxyfoxy.net" + - git config --global user.name "CI Bot" + - git remote set-url origin https://CodeByMrFinchum:$${CI_TOKEN}@code.boxyfoxy.net/$${CI_REPO}.git + - . gitversion.env + - git tag $GitVersion_SemVer + - git push origin tag $GitVersion_SemVer + + - name: build + depends_on: [gitversion, tagging] + when: + event: push + branch: main + image: python:3.9.21 + commands: + - ls + - cat gitversion.env + - export $(cat gitversion.env | xargs) + - sed -i "s/0.0.1/$GitVersion_SemVer/" src/OptimaLab35/__init__.py + - cat src/OptimaLab35/__init__.py + - python3 -m pip install build + - python3 -m build --wheel --sdist -s src + + - name: publish_pypi + depends_on: [gitversion, tagging, build] + when: + event: push + branch: main + image: python:3.9.21 + environment: + TWINE_PASSWORD: + from_secret: TWINE_API + TWINE_USERNAME: "__token__" + commands: + - ls + - python3 -m pip install twine + - python3 -m twine upload dist/* + + - name: publish_forgejo + depends_on: [gitversion, tagging, build] + when: + event: push + branch: main + image: python:3.9.21 + environment: + TWINE_PASSWORD: + from_secret: PKG_TOKEN + TWINE_USERNAME: "CodeByMrFinchum" + commands: + - ls + - python3 -m pip install twine + - python3 -m twine upload --repository-url https://code.boxyfoxy.net/api/packages/CodeByMrFinchum/pypi dist/* diff --git a/README.md b/README.md index 4aae1cc..22efff4 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # **OptimaLab35** -Last updated: 06 Mar 2025 (v.1.0.0) +Developed on my [forgejo instance](https://code.boxyfoxy.net/CodeByMrFinchum), [GitLab](https://gitlab.com/CodeByMrFinchum) is used as backup. ## **Overview** **OptimaLab35** enhances **OPTIMA35** (**Organizing, Processing, Tweaking Images, and Modifying scanned Analogs from 35mm Film**) by offering a user-friendly graphical interface for efficient image and metadata management. -It serves as a GUI for the [OPTIMA35 library](https://gitlab.com/CodeByMrFinchum/optima35), providing an intuitive way to interact with the core functionalities. +It serves as a GUI for the [optima35 library](https://code.boxyfoxy.net/CodeByMrFinchum/optima35), providing an intuitive way to interact with the core functionalities. --- @@ -55,28 +55,28 @@ The UI is OS-dependent, but a custom theme can be enabled in the settings. **Main tab** -![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/main/media/mainwindow_light.png){width=40%} -![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/main/media/mainwindow_dark.png){width=40%} +![main](https://code.boxyfoxy.net/CodeByMrFinchum/OptimaLab35/raw/branch/main/media/mainwindow_light.png){width=40%} +![main](https://code.boxyfoxy.net/CodeByMrFinchum/OptimaLab35/raw/branch/main/media/mainwindow_dark.png){width=40%} **Exif tab** -![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/main/media/mainwindow_exif_light.png){width=40%} -![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/main/media/mainwindow_exif_dark.png){width=40%} +![main](https://code.boxyfoxy.net/CodeByMrFinchum/OptimaLab35/raw/branch/main/media/mainwindow_exif_light.png){width=40%} +![main](https://code.boxyfoxy.net/CodeByMrFinchum/OptimaLab35/raw/branch/main/media/mainwindow_exif_dark.png){width=40%} **Preview window** -![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/main/media/previewwindow_light.png){width=40%} -![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/main/media/previewwindow_dark.png){width=40%} +![main](https://code.boxyfoxy.net/CodeByMrFinchum/OptimaLab35/raw/branch/main/media/previewwindow_light.png){width=40%} +![main](https://code.boxyfoxy.net/CodeByMrFinchum/OptimaLab35/raw/branch/main/media/previewwindow_dark.png){width=40%} **Settings** -![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/main/media/settingswindow_light.png){width=40%} -![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/main/media/settingswindow_dark.png){width=40%} +![main](https://code.boxyfoxy.net/CodeByMrFinchum/OptimaLab35/raw/branch/main/media/settingswindow_light.png){width=40%} +![main](https://code.boxyfoxy.net/CodeByMrFinchum/OptimaLab35/raw/branch/main/media/settingswindow_dark.png){width=40%} **Updater** -![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/main/media/settingswindow_updater_light.png){width=40%} -![main](https://gitlab.com/CodeByMrFinchum/OptimaLab35/-/raw/main/media/settingswindow_updater_dark.png){width=40%} +![main](https://code.boxyfoxy.net/CodeByMrFinchum/OptimaLab35/raw/branch/main/media/settingswindow_updater_light.png){width=40%} +![main](https://code.boxyfoxy.net/CodeByMrFinchum/OptimaLab35/raw/branch/main/media/settingswindow_updater_dark.png){width=40%} --- diff --git a/pip_README.md b/pip_README.md index 7b3f576..576c8bf 100644 --- a/pip_README.md +++ b/pip_README.md @@ -1,4 +1,6 @@ -**[OptimaLab35](https://gitlab.com/CodeByMrFinchum/OptimaLab35)** is a graphical interface for the [OPTIMA35 library](https://gitlab.com/CodeByMrFinchum/optima35), designed for efficient image and metadata management. +**[OptimaLab35](https://code.boxyfoxy.net/CodeByMrFinchum/OptimaLab35)** is a graphical interface for the [optima35 library](https://code.boxyfoxy.net/CodeByMrFinchum/optima35), designed for efficient image and metadata management. + +Developed on my [forgejo instance](https://code.boxyfoxy.net/CodeByMrFinchum), [GitLab](https://gitlab.com/CodeByMrFinchum) is used as backup. ### **Features** - Resize, adjust brightness/contrast, and convert images to grayscale From d93d3de8593aa6688e974613100676d4da694043 Mon Sep 17 00:00:00 2001 From: Mr Finchum Date: Fri, 11 Apr 2025 13:41:24 +0200 Subject: [PATCH 5/7] fix: fixing woodpecker ci (#2) Reviewed-on: https://code.boxyfoxy.net/CodeByMrFinchum/OptimaLab35/pulls/2 Co-authored-by: Mr Finchum Co-committed-by: Mr Finchum --- .gitlab-ci.yml | 69 ---------------------------- .gitlab-ci/git/create_tag.yml | 15 ------ .gitlab-ci/versioning/gitversion.yml | 31 ------------- .woodpecker/woodpecker_ci.yml | 4 +- 4 files changed, 2 insertions(+), 117 deletions(-) delete mode 100644 .gitlab-ci.yml delete mode 100644 .gitlab-ci/git/create_tag.yml delete mode 100644 .gitlab-ci/versioning/gitversion.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index ba2d7d3..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,69 +0,0 @@ ---- -include: - - local: .gitlab-ci/versioning/gitversion.yml - - local: .gitlab-ci/git/create_tag.yml - -stages: - - build - - release - -gitversion: - extends: .versioning:gitversion - stage: .pre - tags: - - gitlab-org-docker - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch - -build: - stage: build - image: python:3.9.21 - tags: - - gitlab-org-docker - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch - needs: - - job: gitversion - artifacts: true - script: - - sed -i "s/0.0.1/${GitVersion_MajorMinorPatch}/" src/OptimaLab35/__init__.py - - cat src/OptimaLab35/__init__.py - - python3 -m pip install build - - python3 -m build --wheel --sdist -s src - artifacts: - paths: - - src/dist/* - expire_in: 1 day - -publish: - stage: release - image: python:3.9.21 - tags: - - gitlab-org-docker - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch - variables: - TWINE_USERNAME: "__token__" - TWINE_PASSWORD: $TWINE_API - needs: - - job: build - artifacts: true - script: - - python3 -m pip install twine - - python3 -m twine upload src/dist/* - -create_tag: - extends: .git:create_tag - stage: release - tags: - - gitlab-org-docker - variables: - VERSION: $GitVersion_SemVer - TOKEN: $GITLAB_TOKEN - needs: - - job: gitversion - artifacts: true - rules: - - if: $CI_COMMIT_TAG - when: never # Do not run this job when a tag is created manually - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch diff --git a/.gitlab-ci/git/create_tag.yml b/.gitlab-ci/git/create_tag.yml deleted file mode 100644 index 2c1afd7..0000000 --- a/.gitlab-ci/git/create_tag.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- - -.git:create_tag: - image: alpine:3.21 - variables: - GIT_STRATEGY: clone - GIT_DEPTH: 0 - GIT_LFS_SKIP_SMUDGE: 1 - VERSION: '' - TOKEN: '' # Token with push privileges - script: - - apk add git - - git remote set-url origin https://oauth2:$TOKEN@$CI_SERVER_HOST/$CI_PROJECT_PATH - - git tag $VERSION - - git push origin tag $VERSION diff --git a/.gitlab-ci/versioning/gitversion.yml b/.gitlab-ci/versioning/gitversion.yml deleted file mode 100644 index dbbc149..0000000 --- a/.gitlab-ci/versioning/gitversion.yml +++ /dev/null @@ -1,31 +0,0 @@ ---- -.versioning:gitversion: - image: - name: mcr.microsoft.com/dotnet/sdk:9.0 - variables: - GIT_STRATEGY: clone - GIT_DEPTH: 0 # force a deep/non-shallow fetch need by gitversion - GIT_LFS_SKIP_SMUDGE: 1 - cache: [] # caches and before / after scripts can mess things up - script: - - | - dotnet tool install --global GitVersion.Tool --version 5.* - export PATH="$PATH:/root/.dotnet/tools" - - dotnet-gitversion -output buildserver - - # We could just collect the output file gitversion.properties (with artifacts:report:dotenv: gitversion.properties as it is already in DOTENV format, - # however it contains ~33 variables which unnecessarily consumes many of the 50 max DOTENV variables of the free GitLab version. - # Limits are higher for licensed editions, see https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportsdotenv - grep 'GitVersion_LegacySemVer=' gitversion.properties >> gitversion.env - grep 'GitVersion_SemVer=' gitversion.properties >> gitversion.env - grep 'GitVersion_FullSemVer=' gitversion.properties >> gitversion.env - grep 'GitVersion_Major=' gitversion.properties >> gitversion.env - grep 'GitVersion_Minor=' gitversion.properties >> gitversion.env - grep 'GitVersion_Patch=' gitversion.properties >> gitversion.env - grep 'GitVersion_MajorMinorPatch=' gitversion.properties >> gitversion.env - grep 'GitVersion_BuildMetaData=' gitversion.properties >> gitversion.env - artifacts: - reports: - # propagates variables into the pipeline level - dotenv: gitversion.env diff --git a/.woodpecker/woodpecker_ci.yml b/.woodpecker/woodpecker_ci.yml index 6d0cfd5..ba24276 100644 --- a/.woodpecker/woodpecker_ci.yml +++ b/.woodpecker/woodpecker_ci.yml @@ -74,7 +74,7 @@ steps: commands: - ls - python3 -m pip install twine - - python3 -m twine upload dist/* + - python3 -m twine upload src/dist/* - name: publish_forgejo depends_on: [gitversion, tagging, build] @@ -89,4 +89,4 @@ steps: commands: - ls - python3 -m pip install twine - - python3 -m twine upload --repository-url https://code.boxyfoxy.net/api/packages/CodeByMrFinchum/pypi dist/* + - python3 -m twine upload --repository-url https://code.boxyfoxy.net/api/packages/CodeByMrFinchum/pypi src/dist/* From a89f43ba2e8a409ee8518fc355ebcbe3a717f575 Mon Sep 17 00:00:00 2001 From: Mr Finchum Date: Fri, 11 Apr 2025 15:57:58 +0200 Subject: [PATCH 6/7] fix: fixed linkage and changelog --- CHANGELOG.md | 18 +++++++++++++++--- src/OptimaLab35/mainWindow.py | 2 +- src/OptimaLab35/settingsWindow.py | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eec392a..2996353 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,22 @@ # Changelog +## 1.4.x +### 1.4.2: Fix links +- Fixed that changelog was linked to GitLab, not it is to code.boxyfoxy.net +- Fixed Changelog + +### 1.4.1: Fix CI +- Fixed pipline +### 1.4.0: New CI +- Migrated repo from GitLab to my forgejo instance, therefore switching to woodpecker CI + +--- + ## 1.3.x ### 1.3.4: Fix - Spelling (25.04.01) - Fixed misspelling in preview window. -### 1.3.3: Patch – Increased Preview Performance x2 (25.04.01) +### 1.3.3: Patch - Increased Preview Performance x2 (25.04.01) - Reduced preview stutter: Previously, the image was updated twice when changing brightness or contrast. Now, it updates only once, improving performance by 100%. - There is still room for improvement. Analysis shows that image processing takes the most time, while displaying in Qt is relatively fast. Reducing the image size impacts performance, so resizing to 50% is a good idea. - There is an issue where `QRunner` does not always finish in the correct order when brightness or contrast values are changed rapidly. ATM I do not know how to fix this easly. @@ -16,7 +28,7 @@ ### 1.3.1: Fix - Fixed insert exif not working (25.03.27) - Fixed the feature that inserted exif into images without modifying them. -### 1.3.0: Feature – Write Adjustments into EXIF (25.03.24) +### 1.3.0: Feature - Write Adjustments into EXIF (25.03.24) - 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. @@ -169,7 +181,7 @@ - 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 +### 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 diff --git a/src/OptimaLab35/mainWindow.py b/src/OptimaLab35/mainWindow.py index ef8ceef..f0bc614 100644 --- a/src/OptimaLab35/mainWindow.py +++ b/src/OptimaLab35/mainWindow.py @@ -130,7 +130,7 @@ class OptimaLab35(QMainWindow, Ui_MainWindow):

For more details, visit:

diff --git a/src/OptimaLab35/settingsWindow.py b/src/OptimaLab35/settingsWindow.py index df5d494..ffbd263 100644 --- a/src/OptimaLab35/settingsWindow.py +++ b/src/OptimaLab35/settingsWindow.py @@ -79,7 +79,7 @@ class SettingsWindow(QMainWindow, Ui_Settings_Window): # Connect button press/release self.ui.check_for_update_Button.pressed.connect(self.start_long_press) self.ui.check_for_update_Button.released.connect(self.cancel_long_press) - self.ui.label_5.setText('
  • Changelog
  • ') + self.ui.label_5.setText('
  • Changelog
  • ') self.ui.label_5.setOpenExternalLinks(True) #settings related self.load_settings_into_ui() From 894d444f914a3bbf85d901a350343a5dcdccb0ff Mon Sep 17 00:00:00 2001 From: Mr Finchum Date: Fri, 30 May 2025 12:17:12 +0200 Subject: [PATCH 7/7] feat: dateEdit is now, instead of static day. --- CHANGELOG.md | 3 +++ src/OptimaLab35/mainWindow.py | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2996353..a9b2781 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,7 @@ # Changelog +## 1.5.x +### 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. ## 1.4.x ### 1.4.2: Fix links diff --git a/src/OptimaLab35/mainWindow.py b/src/OptimaLab35/mainWindow.py index f0bc614..c299689 100644 --- a/src/OptimaLab35/mainWindow.py +++ b/src/OptimaLab35/mainWindow.py @@ -25,7 +25,8 @@ from PySide6.QtCore import ( Signal, QObject, QRegularExpression, - Qt + Qt, + QDate ) from PySide6.QtWidgets import ( @@ -96,7 +97,7 @@ class OptimaLab35(QMainWindow, Ui_MainWindow): validator = QRegularExpressionValidator(regex) self.ui.lat_lineEdit.setValidator(validator) self.ui.long_lineEdit.setValidator(validator) - + self.ui.dateEdit.setDate(QDate.currentDate()) # UI related function, changing parts, open, etc. def open_preview_window(self): self.preview_window = PreviewWindow()