diff --git a/controllers/main_controller.py b/controllers/main_controller.py index fc66e07..295a520 100644 --- a/controllers/main_controller.py +++ b/controllers/main_controller.py @@ -1,6 +1,8 @@ +from pathlib import Path from core.database import DatabaseManager from core.media import MediaRepository from ui.widgets.color_list_widget import ColorListWidget +from ui.widgets.thumbnail_list_widget import ThumbnailListWidget class MainController: @@ -11,8 +13,33 @@ class MainController: self.media_repo.sync_media() self.view = view + self.color_list: ColorListWidget = view.color_list_widget + self.thumbnail_list: ThumbnailListWidget = view.thumbnail_widget + + + self.color_list.colorSelected.connect(self.on_color_selected) + self.color_list.editColor.connect(self.on_edit_color) def load_colors(self) -> None: colors = self.db.get_all_colors() print("Loaded colors:", colors) - self.view.color_list_widget.set_colors(colors) + self.color_list.set_colors(colors) + + + def on_color_selected(self, color_name: str): + print(f"Wybrano kolor: {color_name}") + color_id = self.db.get_color_id(color_name) + if color_id is not None: + media_items = self.db.get_media_for_color(color_id) + print(f"Media dla koloru {color_name} (ID: {color_id}):", media_items) + + self.thumbnail_list.list_widget.clear() + for media in media_items: + if media['file_type'] == 'photo': + file_name = Path(media['media_path']).name + self.thumbnail_list.add_thumbnail(media['media_path'], file_name) + else: + print(f"Nie znaleziono koloru o nazwie: {color_name}") + + def on_edit_color(self, color_name: str): + print(f"Edycja koloru: {color_name}") diff --git a/ui/widgets/color_list_widget.py b/ui/widgets/color_list_widget.py index d125073..2357ec2 100644 --- a/ui/widgets/color_list_widget.py +++ b/ui/widgets/color_list_widget.py @@ -57,6 +57,8 @@ class EditButtonDelegate(QStyledItemDelegate): class ColorListWidget(QWidget): editColor = Signal(str) + colorSelected = Signal(str) + def __init__(self, parent=None): super().__init__(parent) self.colors = None @@ -120,7 +122,8 @@ class ColorListWidget(QWidget): item = self.model.itemFromIndex(source_index) if item: line = item.text() - print(f"Kliknięto kolor: {line}") + # print(f"Kliknięto kolor: {line}") + self.colorSelected.emit(line) return line def on_edit_clicked(self, index): @@ -129,5 +132,5 @@ class ColorListWidget(QWidget): item = self.model.itemFromIndex(source_index) if item: line = item.text() - print(f"Edycja koloru: {line}") + # print(f"Edycja koloru: {line}") self.editColor.emit(line) diff --git a/ui/widgets/thumbnail_list_widget.py b/ui/widgets/thumbnail_list_widget.py index 19a0a46..e6511fb 100644 --- a/ui/widgets/thumbnail_list_widget.py +++ b/ui/widgets/thumbnail_list_widget.py @@ -73,6 +73,7 @@ class ThumbnailListWidget(QWidget): item = QListWidgetItem() item.setSizeHint(QSize(192, 192)) # rozmiar „wiersza” + print(f"Adding thumbnail: {image_path} with text: {text}") widget = ThumbnailItemWidget(image_path, text) self.list_widget.addItem(item) self.list_widget.setItemWidget(item, widget)