from PySide6.QtWidgets import QSystemTrayIcon, QMenu
from PySide6.QtGui import QIcon, QAction
from PySide6.QtWidgets import QApplication, QStyle

from tray.status_window import StatusWindow


class NaverAutoTray(QSystemTrayIcon):
    def __init__(self):
        super().__init__()

        self.status_window = StatusWindow()

        icon = QApplication.style().standardIcon(QStyle.StandardPixmap.SP_ComputerIcon)
        self.setIcon(icon)
        self.setToolTip("네이버 부동산 자동발행 클라이언트")

        menu = QMenu()

        open_action = QAction("앱 열기")
        open_action.triggered.connect(self.open_app)
        menu.addAction(open_action)

        menu.addSeparator()

        quit_action = QAction("종료")
        quit_action.triggered.connect(self.quit_app)
        menu.addAction(quit_action)

        self.setContextMenu(menu)

        self.activated.connect(self.on_tray_activated)

        self.showMessage(
            "네이버 자동발행",
            "클라이언트 프로그램이 실행되었습니다.",
            QSystemTrayIcon.MessageIcon.Information,
            3000
        )

    def on_tray_activated(self, reason):
        if reason == QSystemTrayIcon.ActivationReason.DoubleClick:
            self.open_app()

    def open_app(self):
        self.status_window.show()
        self.status_window.raise_()
        self.status_window.activateWindow()

    def quit_app(self):
        QApplication.quit()