From 84092174be24b5d4988e19c99b80201403b15c38 Mon Sep 17 00:00:00 2001 From: Bzero Date: Fri, 16 Aug 2024 15:09:30 +0200 Subject: [PATCH] Minor improvements (#27) * Get rid of 'QFileSystemWatcher::removePaths: list is empty' warning. * Change saving log level from info to debug. * Enable word wrap to avoid expansion of the editor. * Use SVG logo. * Update ruff rules. --- pyproject.toml | 2 +- typstwriter/editor.py | 28 +- typstwriter/icons/typstwriter.png | Bin 3856 -> 0 bytes typstwriter/icons/typstwriter.svg | 436 ++++++++++++++++++++++++++++++ typstwriter/mainwindow.py | 2 +- 5 files changed, 454 insertions(+), 14 deletions(-) delete mode 100644 typstwriter/icons/typstwriter.png create mode 100644 typstwriter/icons/typstwriter.svg diff --git a/pyproject.toml b/pyproject.toml index b568f63..ae97cf2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,7 +48,7 @@ indent-width = 4 [tool.ruff.lint] select = ["E", "F", "W", "N", "D", "Q", "PL", "R", "C", "B", "C4", "G", "PT", "RET", "RUF", "SIM", "UP"] -ignore = ["D212", "D203", "D400", "RET505", "D100", "PLR0915", "RET504", "PLE1205", "UP015", "PLC2401", "PLR0913"] +ignore = ["D212", "D203", "D400", "RET505", "D100", "PLR0915", "RET504", "PLE1205", "UP015", "PLC2401", "PLR0913", "PT001"] [tool.ruff.format] quote-style = "double" diff --git a/typstwriter/editor.py b/typstwriter/editor.py index 4174252..f7c39be 100644 --- a/typstwriter/editor.py +++ b/typstwriter/editor.py @@ -388,7 +388,8 @@ def load(self, path): self.isloaded = True self.changed_on_disk = False - self.filesystemwatcher.removePaths(self.filesystemwatcher.files()) + if self.filesystemwatcher.files(): + self.filesystemwatcher.removePaths(self.filesystemwatcher.files()) self.filesystemwatcher.addPath(path) self.savestatechanged.emit(self.issaved) @@ -407,7 +408,7 @@ def load(self, path): def write(self): """Write file to disk.""" - logger.info("Saving to: {!r}.", self.path) + logger.debug("Saving to: {!r}.", self.path) try: with open(self.path, "w") as f: @@ -514,24 +515,26 @@ def show_error(self, msg): """Show an error page.""" self.edit.deleteLater() - self.gridLayout = QtWidgets.QGridLayout() + self.HLayout = QtWidgets.QHBoxLayout() + self.verticalLayout.addLayout(self.HLayout) self.label_w = QtWidgets.QLabel() if QtGui.QIcon.hasThemeIcon("data-warning"): self.label_w.setPixmap(QtGui.QIcon.fromTheme("data-warning").pixmap(64)) else: self.label_w.setPixmap(QtGui.QPixmap(util.icon_path("warning.svg"))) - self.label_t = QtWidgets.QLabel("

" + msg + "

") - - self.gridLayout.addWidget(self.label_w, 0, 1) - self.gridLayout.addWidget(self.label_t, 0, 2) - self.gridLayout.setColumnStretch(0, 1) - self.gridLayout.setColumnStretch(1, 0) - self.gridLayout.setColumnStretch(2, 0) - self.gridLayout.setColumnStretch(3, 1) + self.label_t = QtWidgets.QLabel(msg) + font = self.label_t.font() + font.setPointSize(font.pointSize() * 2) + font.setBold(True) + self.label_t.setFont(font) + self.label_t.setWordWrap(True) - self.verticalLayout.addLayout(self.gridLayout) + self.HLayout.addStretch() + self.HLayout.addWidget(self.label_w, alignment=QtCore.Qt.AlignmentFlag.AlignRight) + self.HLayout.addWidget(self.label_t, alignment=QtCore.Qt.AlignmentFlag.AlignLeft) + self.HLayout.addStretch() class FileChangedWarning(QtWidgets.QFrame): @@ -555,6 +558,7 @@ def __init__(self, path): self.label_text = QtWidgets.QLabel() self.label_text.setText(f"The file '{path!r}' has been changed on disk.") + self.label_text.setWordWrap(True) self.horizontalLayout.addWidget(self.label_text) icon = QtGui.QIcon.fromTheme(QtGui.QIcon.ViewRefresh, QtGui.QIcon(util.icon_path("reload.svg"))) diff --git a/typstwriter/icons/typstwriter.png b/typstwriter/icons/typstwriter.png deleted file mode 100644 index fccee461d04e264c550847496865ff66cf2ce08b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3856 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 S(PFIt0000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/typstwriter/mainwindow.py b/typstwriter/mainwindow.py index 3db26c2..bab0759 100644 --- a/typstwriter/mainwindow.py +++ b/typstwriter/mainwindow.py @@ -30,7 +30,7 @@ def __init__(self): self.setWindowTitle("Typstwriter") self.setObjectName("MainWindow") - self.setWindowIcon(QtGui.QIcon(util.icon_path("typstwriter.png"))) + self.setWindowIcon(QtGui.QIcon(util.icon_path("typstwriter.svg"))) # Actions self.actions = actions.Actions(self)