diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py index 8a469cb00..b3c7c23dd 100644 --- a/qutebrowser/mainwindow/prompt.py +++ b/qutebrowser/mainwindow/prompt.py @@ -643,15 +643,11 @@ class FilenamePrompt(_BasePrompt): self._file_model.directoryLoaded.connect( lambda: self._file_model.sort(0)) - def _show_error(self, msg): - log.prompt.error(msg) - QToolTip.showText(self._lineedit.mapToGlobal(QPoint(0, 0)), msg) - def accept(self, value=None): text = value if value is not None else self._lineedit.text() text = downloads.transform_path(text) if text is None: - self._show_error("Invalid filename") + message.error("Invalid filename") return False self.question.answer = text return True @@ -703,13 +699,11 @@ class DownloadFilenamePrompt(FilenamePrompt): self._file_model.setFilter(QDir.AllDirs | QDir.Drives | QDir.NoDot) def accept(self, value=None): - text = value if value is not None else self._lineedit.text() - text = downloads.transform_path(text) - if text is None: - self._show_error("Invalid filename") - return False - self.question.answer = downloads.FileDownloadTarget(text) - return True + done = super().accept(value) + answer = self.question.answer + if answer is not None: + self.question.answer = downloads.FileDownloadTarget(answer) + return done def download_open(self, cmdline): self.question.answer = downloads.OpenFileDownloadTarget(cmdline) diff --git a/tests/end2end/features/downloads.feature b/tests/end2end/features/downloads.feature index 1e4587740..fe312944f 100644 --- a/tests/end2end/features/downloads.feature +++ b/tests/end2end/features/downloads.feature @@ -133,7 +133,7 @@ Feature: Downloading things from a website. And I wait for "Asking question text='Please enter a location for http://localhost:*/data/downloads/download.bin' title='Save file to:'>, *" in the log And I run :prompt-accept COM1 And I run :leave-mode - Then "Invalid filename" should be logged + Then the error "Invalid filename" should be shown @windows Scenario: Downloading a file to a drive-relative working directory @@ -142,7 +142,7 @@ Feature: Downloading things from a website. And I wait for "Asking question text='Please enter a location for http://localhost:*/data/downloads/download.bin' title='Save file to:'>, *" in the log And I run :prompt-accept C:foobar And I run :leave-mode - Then "Invalid filename" should be logged + Then the error "Invalid filename" should be shown @windows Scenario: Downloading a file to a reserved path with :download