Commit Graph

279 Commits

Author SHA1 Message Date
Florian Bruhin
3e2ba32240 Fix retrying downloads with QtWebEngine
Fixes #2298
2017-03-20 09:35:53 +01:00
Daniel Schadt
90f12a1d5a return fast from DownloadItem.open_file
Fixes #2296

By using a singleshot timer, we return fast from DownloadItem.open_file,
which in turn closes the prompt fast, which in turn doesn't allow a
second Ctrl-x to be registered, which in turn doesn't want to set the
filename twice.
2017-03-04 11:30:41 +01:00
Florian Bruhin
de50f30b9b Replace all GitHub links 2017-02-05 00:13:11 +01:00
Daniel Schadt
bd5274af5a fix tests 2017-01-04 17:59:53 +01:00
Daniel Schadt
4fdd3cd761 deduplicate download opening code 2017-01-04 15:31:47 +01:00
Daniel Schadt
8c5ad7d46d use download prompt for mhtml downloads
Fixes #2204

We didn't previously use PromptMode.download for MHTML download prompts
to avoid dealing with thinks like "Open download", but the new download
prompt is just way better than the old, which justifies the extra work.

This means that MHTML downloads can now also be opened directly.
2017-01-04 15:18:56 +01:00
Florian Bruhin
2d1d078430 Merge branch 'issue-2173' of https://github.com/Kingdread/qutebrowser into Kingdread-issue-2173 2016-12-22 22:24:19 +01:00
Daniel Schadt
f92c82ead1 downloads: don't remember dir for temp downloads
Fixes #2173
2016-12-20 14:52:39 +01:00
Samuel Walladge
aafcd1f1d7
fix failing pylint test (line too long) 2016-12-17 09:22:22 +10:30
Samuel Walladge
f6c73f3ad6
implement optional download-open handler setting
- adds new `general` -> `default-open-dispatcher` setting (string)
- if set, will be used instead of QDesktopServices.openUrl (xdg-open backend)
- fixes the 'download handlers' part of issue #841
- note that this is only relevent to the `:download-open` command and other
  methods of opening downloaded files from qutebrowser
2016-12-16 21:54:04 +10:30
Florian Bruhin
cf32aac111 Move usertypes.DownloadTarget to downloads module 2016-11-09 08:15:58 +01:00
Florian Bruhin
de1e3a7a54 Make DownloadItem._autoclose private 2016-11-08 20:35:07 +01:00
Florian Bruhin
b00c889dd1 Call _set_fileobj in AbstractDownloadItem.set_target 2016-11-08 20:33:25 +01:00
Florian Bruhin
19c7d747dd Fix downloads with unknown size with WebEngine 2016-11-08 09:18:10 +01:00
Florian Bruhin
54db4255b1 Fix handling of temporary files
When we use self._set_filename in self._set_fileobj, the file already
exists, so we need to force "overwriting" it.

Also, move temporary file handling to a dedicated _set_tempfile method,
so we can officially claim not supporting _set_fileobj with QtWebEngine
instead of supporting it with a hack.
2016-11-08 09:18:10 +01:00
Florian Bruhin
fc6c6d4998 Fix lint 2016-11-08 09:16:47 +01:00
Florian Bruhin
a5afdf6fb6 Handle QtWebEngine downloads in DownloadModel 2016-11-04 18:49:25 +01:00
Florian Bruhin
ea9796403f Fix _ask_confirm_question 2016-11-04 18:49:25 +01:00
Florian Bruhin
bf994cd8da Initial QtWebEngine download support 2016-11-04 18:49:24 +01:00
Florian Bruhin
a3a167e683 Split _die in two methods
We need to do some stuff before AbstractDownloadItem._die runs.
2016-11-04 18:49:24 +01:00
Florian Bruhin
e985730cbf Simplify TempDownloadManager initialization 2016-11-04 18:49:24 +01:00
Florian Bruhin
7ca6996f39 Adjust imports 2016-11-04 18:49:24 +01:00
Florian Bruhin
0ac2b71304 Simplify how filename questions are handled 2016-11-04 18:49:24 +01:00
Florian Bruhin
3b51548d3a More download splitting 2016-11-04 18:49:24 +01:00
Florian Bruhin
92b1bf2227 Get rid of win_id for DownloadItem 2016-11-04 18:49:24 +01:00
Florian Bruhin
12d798d54d Continue download splitting 2016-11-04 18:49:24 +01:00
Florian Bruhin
2c94efbf8a First big download refactoring chunk 2016-11-04 18:49:24 +01:00
Florian Bruhin
4fccc89d7d Split browser into browser/browser.webkit 2016-06-13 11:18:21 +02:00
Florian Bruhin
afcb018ee2 Fix some spelling mistakes
Found via http://jwilk.net/software/mwic
2016-05-27 12:07:00 +02:00
Florian Bruhin
35135c4b0d Use @cmdutils.argument for win_id/count 2016-05-18 06:55:17 +02:00
Daniel Schadt
1fa50021c1 downloads: use right index for beginInsertRows
len(self.downloads) is already the index of the item in the download
list, this should be used for beginInsertRows(). The +1 is only for the
human readable part.
2016-05-08 23:36:31 +02:00
Daniel Schadt
99182e3e79 downloads: change len() to sum() 2016-05-08 23:36:31 +02:00
Daniel Schadt
643d2cc6dd fix confirm-quit=downloads with finished downloads
Issue #846

.rowCount() returns all downloads, even the finished ones that have not
yet been removed from the list. For confirming the quit event, we should
only consider downloads that are still running.
2016-05-08 23:36:31 +02:00
Daniel Schadt
2918c5cd57 downloads: close fileobject in DownloadItem._die
Otherwise we will get a unclosed resource warning.
2016-05-06 18:01:45 +02:00
Florian Bruhin
2a343cb3a1 Various code style improvements 2016-04-27 20:25:27 +02:00
Florian Bruhin
7c3361d8da Stabilize :download-delete test 2016-04-26 22:56:06 +02:00
Florian Bruhin
37b5f49c85 Fix types in @pyqtSlot decorations
PyQt 5.5 enforces correct type signatures, and there were a lot of
places where we were simply wrong, causing qutebrowser to not start at
all...
2016-04-26 20:34:38 +02:00
Florian Bruhin
6989d4d210 Fix downloading of non-ascii files with LC_ALL=C
Fixes #908.
2016-04-10 20:16:40 +02:00
Florian Bruhin
642dc46ba9 flake8: Add hacking 2016-04-08 07:35:53 +02:00
Florian Bruhin
b5c177526c tests: Add some "# pragma: no cover" for downloads 2016-04-05 11:43:35 +02:00
Florian Bruhin
123fd18af5 Fix crash when removing download in closed window
When a download is finished with `removed-finished-download` set to a
delay, it's removed via a singleshot QTimer.

However, when the window was closed in the meantime, the slot still was
executed by Qt, even though the DownloadManager was already deleted.

Fixes #1242
2016-03-31 19:09:43 +02:00
Florian Bruhin
60c293846f Un-deprecate :download-remove --all 2016-03-14 19:11:41 +01:00
Florian Bruhin
35731feeb5 Fix docs for :download-* commands 2016-03-14 19:05:36 +01:00
Florian Bruhin
25ee48d28b Add an --all flag to :download-cancel 2016-03-14 19:05:15 +01:00
Florian Bruhin
18b6d7ea50 Merge branch 'xdg-download-dir-fix' of https://github.com/Kingdread/qutebrowser into Kingdread-xdg-download-dir-fix 2016-03-08 07:13:03 +01:00
Daniel Schadt
20daf1f86e fix lint 2016-02-23 14:33:10 +01:00
Daniel Schadt
e5dc10a29e downloads: handle relative XDG_DOWNLOAD_DIR
Issues #1269, #866

qutebrowser would crash when XDG_DOWNLOAD_DIR was set to some
non-absolute value (which should not happen, but it can) and
"storage -> download-dir" was empty, since when the user didn't give an
absolute filename, even the joined path of download_dir() (i.e.
XDG_DOWNLOAD_DIR in this case) and the filename was not absolute either.

Since the path was not absolute, create_full_filename returned None,
which meant that os.path.basename(self._filename) raised an exception.

Now we display an error message and fall back to $HOME.
2016-02-22 23:43:09 +01:00
Daniel Schadt
007425cf16 downloads: fix filename for data: links
Issue #1214

Now uses a sensible filename for data: links instead of the whole base64
content. For PDF.js, it even uses the correct pdf filename.

TODO: Produces "QPainter:🔚 Painter ended with 2 saved states" while
running the tests here (Arch Linux):
CPython: 3.5.1
Qt: 5.5.1, runtime: 5.5.1
PyQt: 5.5.1
2016-02-18 16:17:35 +01:00
Florian Bruhin
85adf7593d Fix crash when downloading URL without path infos.
Fixes #1243.
2016-01-26 22:39:10 +01:00
Florian Bruhin
a5f2ac5f03 Adjust copyright years. 2016-01-04 07:12:39 +01:00