refactor main controller and main window to streamline color loading and widget initialization

This commit is contained in:
2025-09-07 13:23:22 +02:00
parent 9d389e6e5f
commit b9caf46104
3 changed files with 32 additions and 17 deletions

View File

@@ -0,0 +1,18 @@
from core.database import DatabaseManager
from core.media import MediaRepository
from ui.widgets.color_list_widget import ColorListWidget
class MainController:
def __init__(self, view):
self.db = DatabaseManager()
self.db.connect()
self.media_repo = MediaRepository(self.db)
self.media_repo.sync_media()
self.view = view
def load_colors(self) -> None:
colors = self.db.get_all_colors()
print("Loaded colors:", colors)
self.view.color_list_widget.set_colors(colors)

11
main.py
View File

@@ -2,20 +2,15 @@ import sys
from PySide6.QtWidgets import QApplication
from ui.main_window import MainWindow
from core.database import DatabaseManager
from core.media import MediaRepository
from controllers.main_controller import MainController
def main():
app = QApplication(sys.argv)
db = DatabaseManager()
db.connect()
media_repo = MediaRepository(db)
media_repo.sync_media()
print(db.get_all_colors())
window = MainWindow()
controller = MainController(window)
controller.load_colors()
window.show()
sys.exit(app.exec())

View File

@@ -44,16 +44,18 @@ class MainWindow(QMainWindow):
histogram_view.setFixedHeight(200)
control_layout.addWidget(histogram_view)
color_list_widget = ColorListWidget([
{"name": "Red", "color": "#FF0000"},
{"name": "Green", "color": "#00FF00"},
{"name": "Blue", "color": "#0000FF"},
{"name": "Yellow", "color": "#FFFF00"},
{"name": "Cyan", "color": "#00FFFF"},
{"name": "Magenta", "color": "#FF00FF"},
], self.control_widget)
self.color_list_widget = ColorListWidget(self.control_widget)
control_layout.addWidget(color_list_widget)
# color_list_widget.set_colors_from_db([
# {"name": "Red", "color": "#FF0000"},
# {"name": "Green", "color": "#00FF00"},
# {"name": "Blue", "color": "#0000FF"},
# {"name": "Yellow", "color": "#FFFF00"},
# {"name": "Cyan", "color": "#00FFFF"},
# {"name": "Magenta", "color": "#FF00FF"},
# ])
control_layout.addWidget(self.color_list_widget)
# control_layout.addStretch()