connect color selection and editing signals to main controller; enhance thumbnail loading
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
|
from pathlib import Path
|
||||||
from core.database import DatabaseManager
|
from core.database import DatabaseManager
|
||||||
from core.media import MediaRepository
|
from core.media import MediaRepository
|
||||||
from ui.widgets.color_list_widget import ColorListWidget
|
from ui.widgets.color_list_widget import ColorListWidget
|
||||||
|
from ui.widgets.thumbnail_list_widget import ThumbnailListWidget
|
||||||
|
|
||||||
|
|
||||||
class MainController:
|
class MainController:
|
||||||
@@ -11,8 +13,33 @@ class MainController:
|
|||||||
self.media_repo.sync_media()
|
self.media_repo.sync_media()
|
||||||
|
|
||||||
self.view = view
|
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:
|
def load_colors(self) -> None:
|
||||||
colors = self.db.get_all_colors()
|
colors = self.db.get_all_colors()
|
||||||
print("Loaded colors:", 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}")
|
||||||
|
|||||||
@@ -57,6 +57,8 @@ class EditButtonDelegate(QStyledItemDelegate):
|
|||||||
|
|
||||||
class ColorListWidget(QWidget):
|
class ColorListWidget(QWidget):
|
||||||
editColor = Signal(str)
|
editColor = Signal(str)
|
||||||
|
colorSelected = Signal(str)
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self.colors = None
|
self.colors = None
|
||||||
@@ -120,7 +122,8 @@ class ColorListWidget(QWidget):
|
|||||||
item = self.model.itemFromIndex(source_index)
|
item = self.model.itemFromIndex(source_index)
|
||||||
if item:
|
if item:
|
||||||
line = item.text()
|
line = item.text()
|
||||||
print(f"Kliknięto kolor: {line}")
|
# print(f"Kliknięto kolor: {line}")
|
||||||
|
self.colorSelected.emit(line)
|
||||||
return line
|
return line
|
||||||
|
|
||||||
def on_edit_clicked(self, index):
|
def on_edit_clicked(self, index):
|
||||||
@@ -129,5 +132,5 @@ class ColorListWidget(QWidget):
|
|||||||
item = self.model.itemFromIndex(source_index)
|
item = self.model.itemFromIndex(source_index)
|
||||||
if item:
|
if item:
|
||||||
line = item.text()
|
line = item.text()
|
||||||
print(f"Edycja koloru: {line}")
|
# print(f"Edycja koloru: {line}")
|
||||||
self.editColor.emit(line)
|
self.editColor.emit(line)
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ class ThumbnailListWidget(QWidget):
|
|||||||
item = QListWidgetItem()
|
item = QListWidgetItem()
|
||||||
item.setSizeHint(QSize(192, 192)) # rozmiar „wiersza”
|
item.setSizeHint(QSize(192, 192)) # rozmiar „wiersza”
|
||||||
|
|
||||||
|
print(f"Adding thumbnail: {image_path} with text: {text}")
|
||||||
widget = ThumbnailItemWidget(image_path, text)
|
widget = ThumbnailItemWidget(image_path, text)
|
||||||
self.list_widget.addItem(item)
|
self.list_widget.addItem(item)
|
||||||
self.list_widget.setItemWidget(item, widget)
|
self.list_widget.setItemWidget(item, widget)
|
||||||
|
|||||||
Reference in New Issue
Block a user