#!/usr/bin/python3

from PyQt6.QtCore import Qt
from PyQt6.QtGui import QIcon
from PyQt6.QtWidgets import QMainWindow, QMenu
from .track_control import TrackControl
from .settings import Settings
from .process.process_dock import ProcessDock
from .track_info import TrackInfo


class MainWindow(QMainWindow):
    def __init__(self, app, parent=None):
        super().__init__(parent)

        self.app = app

        self.icon = QIcon(f"{self.app.utils.wobuzz_location}/icon.svg")

        self.setWindowTitle("Wobuzz")
        self.setWindowIcon(self.icon)

        self.menu_bar = self.menuBar()

        self.file_menu = QMenu("&File", self.menu_bar)
        self.menu_bar.addMenu(self.file_menu)

        self.edit_menu = QMenu("&Edit", self.menu_bar)
        self.menu_bar.addMenu(self.edit_menu)

        self.settings_action = self.edit_menu.addAction("&Settings")

        self.view_menu = QMenu("&View", self.menu_bar)
        self.menu_bar.addMenu(self.view_menu)

        self.processes_action = self.view_menu.addAction("Show &Background Processes")

        self.track_control = TrackControl(app)
        self.addToolBar(self.track_control)

        self.settings = Settings(app)
        self.settings.hide()
        self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.settings)

        self.process_dock = ProcessDock(app)
        self.process_dock.hide()
        self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.process_dock)

        self.track_info = TrackInfo(app)
        self.addToolBar(Qt.ToolBarArea.BottomToolBarArea, self.track_info)

        self.settings_action.triggered.connect(self.settings.show)
        self.processes_action.triggered.connect(self.process_dock.show)