# -*- coding: utf-8 -*-
"""Kleines Notizfeld — speichert in notes.txt im Dashboard-Ordner."""
from pathlib import Path
from PyQt5.QtCore import QTimer
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import QVBoxLayout, QPlainTextEdit

from modules.base import DashboardModule

NOTES_FILE = Path(__file__).resolve().parent.parent / "notes.txt"


class NotesModule(DashboardModule):
    def __init__(self, parent=None):
        super().__init__(parent)
        lay = QVBoxLayout(self)
        lay.setContentsMargins(2, 2, 2, 2)

        self.edit = QPlainTextEdit()
        self.edit.setFont(QFont("Segoe UI", 10))
        self.edit.setStyleSheet("""
            QPlainTextEdit {
                background: rgba(0,0,0,0.35);
                color: #E8F4FF;
                border: 1px solid rgba(255,255,255,0.08);
                border-radius: 6px;
                padding: 6px;
            }
        """)
        self.edit.setMinimumHeight(110)
        lay.addWidget(self.edit)

        if NOTES_FILE.exists():
            try:
                self.edit.setPlainText(NOTES_FILE.read_text(encoding="utf-8"))
            except Exception:
                pass

        # Verzögert speichern, damit nicht bei jedem Tastendruck geschrieben wird
        self._save_timer = QTimer(self)
        self._save_timer.setSingleShot(True)
        self._save_timer.timeout.connect(self._save)
        self.edit.textChanged.connect(lambda: self._save_timer.start(800))

    def _save(self):
        try:
            NOTES_FILE.write_text(self.edit.toPlainText(), encoding="utf-8")
        except Exception as e:
            print(f"[Notizen] Speichern fehlgeschlagen: {e}")


MODULE_TITLE = "Notizen"
MODULE_CLASS = NotesModule
