Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 16 additions & 6 deletions ui_elements/image_config_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@

from custom_widgets.custom_list_view import CustomListView
from utils.exif_utils import convert_to_degrees
from utils.exif_utils import format_gps_for_exif, is_valid_gps, format_date_for_exif
from utils.exif_utils import format_gps_for_exif, is_valid_date, is_valid_gps, format_date_for_exif
from utils.image_loader_thread import ImageLoaderThread
from utils.python_bridge import PythonBridge

Expand Down Expand Up @@ -94,6 +94,10 @@ def __init__(self):
subcontrol-origin: margin;
left: 10px;
}

::disabled {
color: gray;
}
"""
)

Expand Down Expand Up @@ -215,6 +219,8 @@ def show_exif_data(self, exif_dict, filename):
date_parts = current_date[:10].split(":")
current_date = current_date[:10].replace(":", "-")
exif_data_texts.append(f"Original Creation Date: {current_date}")
else:
exif_data_texts.append(f"No Creation Date set")

if "GPS" in exif_dict:
gps_data = self.parse_gps_data(exif_dict["GPS"])
Expand All @@ -224,9 +230,10 @@ def show_exif_data(self, exif_dict, filename):
exif_data_texts.append(f"GPS Coordinates: {current_gps}")

self.exif_data_label.setText("\n".join(exif_data_texts))
self.date_edit.setDate(
QDate(int(date_parts[0]), int(date_parts[1]), int(date_parts[2]))
)
if date_parts:
self.date_edit.setDate(
QDate(int(date_parts[0]), int(date_parts[1]), int(date_parts[2]))
)
self.gps_edit.setText(current_gps)

def parse_gps_data(self, gps_dict):
Expand Down Expand Up @@ -260,7 +267,7 @@ def apply_batch_edit(self):
new_date = self.date_edit.date().toString("yyyy-MM-dd")
new_gps = self.gps_edit.text()

if not self.is_valid_date(new_date):
if not is_valid_date(new_date):
self.statusBar.showMessage(
"Invalid date format. Please use YYYY-MM-DD", 5000
)
Expand Down Expand Up @@ -311,7 +318,10 @@ def load_images_from_folder(self, folder_path):
self.progress_bar.show()
self.progress_bar.setValue(0)

self.image_loader_thread = ImageLoaderThread(folder_path)
self.image_loader_thread = ImageLoaderThread(
folder_path,
self.thumbnail_size_slider.maximum()
)
self.image_loader_thread.progress_update.connect(self.on_progress_update)
self.image_loader_thread.finished_loading.connect(self.on_finished_loading)
self.image_loader_thread.start()
Expand Down
10 changes: 7 additions & 3 deletions utils/image_loader_thread.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
from PyQt6.QtCore import QThread, pyqtSignal, QDir
from PyQt6.QtCore import QThread, pyqtSignal, QDir, Qt, QSize
from PyQt6.QtGui import QPixmap, QIcon, QStandardItem


class ImageLoaderThread(QThread):
progress_update = pyqtSignal(int)
finished_loading = pyqtSignal(list)

def __init__(self, folder_path):
def __init__(self, folder_path, max_thumbnail_size):
super().__init__()
self.folder_path = folder_path
self.thumbnail_size = QSize(max_thumbnail_size, max_thumbnail_size)

def run(self):
img_dir = QDir(self.folder_path)
Expand All @@ -17,7 +18,10 @@ def run(self):
loaded_images = []

for i, file in enumerate(file_list):
pixmap = QPixmap(img_dir.absoluteFilePath(file))
pixmap = QPixmap(img_dir.absoluteFilePath(file)).scaled(
self.thumbnail_size,
Qt.AspectRatioMode.KeepAspectRatio
)
icon = QIcon(pixmap)

item = QStandardItem(icon, file)
Expand Down