from __future__ import annotations

from pathlib import Path

from .usermodeleditor import QUsermodelEditor
from ..Qt import QtWidgets, QtCore, QtGui


class QEditor(QUsermodelEditor):
    runSignal = QtCore.pyqtSignal(str)

    def __init__(self, path: str | Path = None, parent=None):
        super().__init__(path, parent=parent)

        self.add_run_button()

    def add_run_button(self):
        self.disclaimer = QtWidgets.QLabel("This is work in progress and less than perfect :(")
        self.disclaimer.setStyleSheet('QLabel {color: rgb(255, 0, 0); font-weight: bold; font-size: 2.5em;};')
        self.centralwidget.layout().insertWidget(0, self.disclaimer)

        self.run_button = QtWidgets.QPushButton("Run")
        self.centralwidget.layout().addWidget(self.run_button)

        self.run_button.clicked.connect(self.start_script)

    @QtCore.pyqtSlot()
    def start_script(self):
        self.runSignal.emit(self.edit_field.toPlainText())

