From: Danilo M. Date: Sun, 3 May 2026 08:37:59 +0000 (+0200) Subject: fix: remove dead code/imports, wrap fm column in QScrollArea, fix path display, simpl... X-Git-Tag: v1.0~14 X-Git-Url: https://git.danix.xyz/?a=commitdiff_plain;h=d4e151f6782dc7a66313eb92bf6e05fa2d343823;p=publisher.git fix: remove dead code/imports, wrap fm column in QScrollArea, fix path display, simplify _save --- diff --git a/ui/article_detail.py b/ui/article_detail.py index 77dadb7..1fe1643 100644 --- a/ui/article_detail.py +++ b/ui/article_detail.py @@ -1,9 +1,8 @@ from __future__ import annotations -import subprocess import re from PyQt6.QtWidgets import ( QWidget, QVBoxLayout, QHBoxLayout, QLabel, - QPushButton, QTextBrowser, QScrollArea, QSizePolicy, QFrame, + QPushButton, QTextBrowser, QScrollArea, QFrame, ) from PyQt6.QtCore import pyqtSignal, Qt from core.models import Article @@ -64,9 +63,12 @@ class ArticleDetailView(QWidget): body.setContentsMargins(0, 0, 0, 0) body.setSpacing(0) - # Frontmatter column + # Frontmatter column (scrollable) + fm_scroll = QScrollArea() + fm_scroll.setFixedWidth(230) + fm_scroll.setWidgetResizable(True) + fm_scroll.setStyleSheet("QScrollArea { background:#0a0a12; border:none; }") self._fm_widget = QWidget() - self._fm_widget.setFixedWidth(230) self._fm_widget.setStyleSheet("background:#0a0a12;") self._fm_layout = QVBoxLayout(self._fm_widget) self._fm_layout.setContentsMargins(10, 10, 10, 10) @@ -76,7 +78,8 @@ class ArticleDetailView(QWidget): self._fm_content = QVBoxLayout() self._fm_layout.addLayout(self._fm_content) self._fm_layout.addStretch() - body.addWidget(self._fm_widget) + fm_scroll.setWidget(self._fm_widget) + body.addWidget(fm_scroll) divider = QFrame() divider.setFrameShape(QFrame.Shape.VLine) @@ -101,7 +104,7 @@ class ArticleDetailView(QWidget): def set_article(self, article: Article): self._article = article self._title_label.setText(article.slug) - rel = str(article.path).replace(str(article.path.parent.parent.parent.parent), "") + rel = "/".join(article.path.parts[-5:]) self._path_label.setText(rel) # Populate frontmatter diff --git a/ui/articles_view.py b/ui/articles_view.py index d3fac93..f45e736 100644 --- a/ui/articles_view.py +++ b/ui/articles_view.py @@ -1,7 +1,7 @@ from __future__ import annotations from PyQt6.QtWidgets import ( - QWidget, QVBoxLayout, QHBoxLayout, QTabWidget, - QListWidget, QListWidgetItem, QLabel, QPushButton, + QWidget, QVBoxLayout, QTabWidget, + QListWidget, QListWidgetItem, QLabel, ) from PyQt6.QtCore import Qt, pyqtSignal from PyQt6.QtGui import QColor @@ -11,7 +11,6 @@ class ArticleItem(QListWidgetItem): def __init__(self, article: Article): super().__init__() self.article = article - lang_other = "EN" if article.lang == "it" else "IT" if article.has_translation: badge = f"🇬🇧 ✓" if article.lang == "it" else "🇮🇹 ✓" status = f"{article.slug} [{badge}]" diff --git a/ui/frontmatter_editor.py b/ui/frontmatter_editor.py index 218bbac..3b4b690 100644 --- a/ui/frontmatter_editor.py +++ b/ui/frontmatter_editor.py @@ -7,7 +7,7 @@ from PyQt6.QtWidgets import ( from PyQt6.QtCore import Qt from pathlib import Path from core.models import Article, ARTICLE_TYPES -from core.frontmatter import parse_frontmatter, write_frontmatter +from core.frontmatter import write_frontmatter from core.taxonomy import load_taxonomy class FrontmatterEditor(QDialog): @@ -76,8 +76,7 @@ class FrontmatterEditor(QDialog): else: updated[key] = val try: - _, body = parse_frontmatter(self._article.path) - write_frontmatter(self._article.path, updated, body) + write_frontmatter(self._article.path, updated, "") self._article.frontmatter.update(updated) self.accept() except Exception as e: