diff options
Diffstat (limited to 'ui/setup_dialog.py')
| -rw-r--r-- | ui/setup_dialog.py | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/ui/setup_dialog.py b/ui/setup_dialog.py new file mode 100644 index 0000000..4a8c6b7 --- /dev/null +++ b/ui/setup_dialog.py @@ -0,0 +1,55 @@ +from __future__ import annotations +from PyQt6.QtWidgets import ( + QDialog, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, + QPushButton, QFileDialog, QFormLayout, +) +from core.config import Config + +class SetupDialog(QDialog): + def __init__(self, config: Config, parent=None): + super().__init__(parent) + self.setWindowTitle("my-publisher — Setup") + self.setMinimumWidth(500) + self._config = config + self._build_ui() + + def _build_ui(self): + layout = QVBoxLayout(self) + layout.addWidget(QLabel("Configura my-publisher prima di iniziare.")) + + form = QFormLayout() + + self._blog_repo = QLineEdit(self._config.blog_repo) + browse_btn = QPushButton("Sfoglia...") + browse_btn.clicked.connect(self._browse_repo) + row = QHBoxLayout() + row.addWidget(self._blog_repo) + row.addWidget(browse_btn) + form.addRow("Blog repo:", row) + + self._transart = QLineEdit(self._config.transart_script) + form.addRow("transart.py:", self._transart) + + self._typora = QLineEdit(self._config.typora_bin) + form.addRow("Typora bin:", self._typora) + + layout.addLayout(form) + + btns = QHBoxLayout() + save_btn = QPushButton("Salva") + save_btn.clicked.connect(self._save) + btns.addStretch() + btns.addWidget(save_btn) + layout.addLayout(btns) + + def _browse_repo(self): + path = QFileDialog.getExistingDirectory(self, "Seleziona blog repo") + if path: + self._blog_repo.setText(path) + + def _save(self): + self._config.blog_repo = self._blog_repo.text().strip() + self._config.transart_script = self._transart.text().strip() + self._config.typora_bin = self._typora.text().strip() + self._config.save() + self.accept() |
