From 6baa6dea26c8a0919db31d53bb1acba3679fd153 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 26 Jun 2023 13:50:07 +0200 Subject: Migrate :print --pdf to pathlib --- qutebrowser/browser/browsertab.py | 3 ++- qutebrowser/browser/webengine/webenginetab.py | 4 ++-- qutebrowser/browser/webkit/webkittab.py | 6 +++--- qutebrowser/components/misccommands.py | 13 ++++++------- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/qutebrowser/browser/browsertab.py b/qutebrowser/browser/browsertab.py index 95851b7f0..ae411a12a 100644 --- a/qutebrowser/browser/browsertab.py +++ b/qutebrowser/browser/browsertab.py @@ -20,6 +20,7 @@ """Base class for a wrapper over QWebView/QWebEngineView.""" import enum +import pathlib import itertools import functools import dataclasses @@ -273,7 +274,7 @@ class AbstractPrinting(QObject): """ raise NotImplementedError - def to_pdf(self, filename: str) -> None: + def to_pdf(self, path: pathlib.Path) -> None: """Print the tab to a PDF with the given filename.""" raise NotImplementedError diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 6f0ea82f3..a1d3af6ea 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -96,8 +96,8 @@ class WebEnginePrinting(browsertab.AbstractPrinting): raise browsertab.WebTabError( "Print previews are unsupported with QtWebEngine") - def to_pdf(self, filename): - self._widget.page().printToPdf(filename) + def to_pdf(self, path): + self._widget.page().printToPdf(str(path)) def to_printer(self, printer): if machinery.IS_QT5: diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index 0916a0a64..b455f138f 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -92,12 +92,12 @@ class WebKitPrinting(browsertab.AbstractPrinting): def check_preview_support(self): pass - def to_pdf(self, filename): + def to_pdf(self, path): printer = QPrinter() - printer.setOutputFileName(filename) + printer.setOutputFileName(str(path)) self._widget.print(printer) # Can't find out whether there was an error... - self.pdf_printing_finished.emit(filename, True) + self.pdf_printing_finished.emit(str(path), True) def to_printer(self, printer): self._widget.print(printer) diff --git a/qutebrowser/components/misccommands.py b/qutebrowser/components/misccommands.py index 5bbf93e6a..8352f5f07 100644 --- a/qutebrowser/components/misccommands.py +++ b/qutebrowser/components/misccommands.py @@ -91,19 +91,18 @@ def _print_preview(tab: apitypes.Tab) -> None: diag.exec() -def _print_pdf(tab: apitypes.Tab, filename: str) -> None: +def _print_pdf(tab: apitypes.Tab, path: pathlib.Path) -> None: """Print to the given PDF file.""" tab.printing.check_pdf_support() - filename = os.path.expanduser(filename) - directory = os.path.dirname(filename) + path = path.expanduser() try: - os.makedirs(directory, exist_ok=True) + path.parent.mkdir(parents=True, exist_ok=True) except OSError as e: raise cmdutils.CommandError(e) - tab.printing.to_pdf(filename) - _LOGGER.debug("Print to file: {}".format(filename)) + tab.printing.to_pdf(path) + _LOGGER.debug(f"Print to file: {path}") @cmdutils.register(name='print') @@ -111,7 +110,7 @@ def _print_pdf(tab: apitypes.Tab, filename: str) -> None: @cmdutils.argument('pdf', flag='f', metavar='file') def printpage(tab: Optional[apitypes.Tab], preview: bool = False, *, - pdf: str = None) -> None: + pdf: Optional[pathlib.Path] = None) -> None: """Print the current/[count]th tab. Args: -- cgit v1.2.3-54-g00ecf