Merge commit '563a5431e35831cb0a8c418835c54d0264d92c78' into Kingdread/windows-drive-cwd

This commit is contained in:
Florian Bruhin 2017-03-30 10:48:39 +02:00
commit 6939f81de7
3 changed files with 13 additions and 19 deletions

View File

@ -184,8 +184,6 @@ class MainWindow(QWidget):
self._keyhint = keyhintwidget.KeyHintView(self.win_id, self)
self._add_overlay(self._keyhint, self._keyhint.update_geometry)
self._messageview = messageview.MessageView(parent=self)
self._add_overlay(self._messageview, self._messageview.update_geometry)
self._prompt_container = prompt.PromptContainer(self.win_id, self)
self._add_overlay(self._prompt_container,
@ -195,6 +193,9 @@ class MainWindow(QWidget):
scope='window', window=self.win_id)
self._prompt_container.hide()
self._messageview = messageview.MessageView(parent=self)
self._add_overlay(self._messageview, self._messageview.update_geometry)
if geometry is not None:
self._load_geometry(geometry)
elif self.win_id == 0:

View File

@ -25,10 +25,9 @@ import collections
import sip
from PyQt5.QtCore import (pyqtSlot, pyqtSignal, Qt, QTimer, QDir, QModelIndex,
QItemSelectionModel, QObject, QEventLoop, QPoint)
QItemSelectionModel, QObject, QEventLoop)
from PyQt5.QtWidgets import (QWidget, QGridLayout, QVBoxLayout, QLineEdit,
QLabel, QFileSystemModel, QTreeView, QSizePolicy,
QToolTip)
QLabel, QFileSystemModel, QTreeView, QSizePolicy)
from qutebrowser.browser import downloads
from qutebrowser.config import style, config
@ -643,15 +642,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 +698,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)

View File

@ -133,7 +133,7 @@ Feature: Downloading things from a website.
And I wait for "Asking question <qutebrowser.utils.usertypes.Question default='*' mode=<PromptMode.download: 5> text='Please enter a location for <b>http://localhost:*/data/downloads/download.bin</b>' 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 <qutebrowser.utils.usertypes.Question default='*' mode=<PromptMode.download: 5> text='Please enter a location for <b>http://localhost:*/data/downloads/download.bin</b>' 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