Commit Graph

392 Commits

Author SHA1 Message Date
Florian Bruhin
fdd1147620 Revert "Global prompt container"
This reverts commit c23beee6502776dd19c0955b311e8dfb9f1c77ae.
2016-11-03 08:40:42 +01:00
Florian Bruhin
1d6166b474 Global prompt container 2016-11-03 08:40:42 +01:00
Florian Bruhin
9ce1180b31 First attempt at showing prompts in all windows 2016-11-03 08:40:42 +01:00
Florian Bruhin
d5a1f6d6b5 Only support calling _init_key_label once 2016-11-03 08:40:42 +01:00
Florian Bruhin
fefc8c4eb2 Add more tests for prompts 2016-11-03 08:40:42 +01:00
Florian Bruhin
20716c137c Support tab completion for auth prompts again 2016-11-03 08:40:41 +01:00
Florian Bruhin
3ffcb011a7 Simplify key label for auth prompts 2016-11-03 08:40:41 +01:00
Florian Bruhin
9bdbb257ba Add initial filename completion 2016-11-03 08:40:41 +01:00
Florian Bruhin
6ab51e0b7b Handle clicking on file items in prompt 2016-11-03 08:40:41 +01:00
Florian Bruhin
acbd5107d6 Only show directories in download filename prompts 2016-11-03 08:40:41 +01:00
Florian Bruhin
46b24fc64a Improve how file list is shown in download prompt 2016-11-03 08:40:41 +01:00
Florian Bruhin
6da6758263 Improve FilenamePrompt widget sizing 2016-11-03 08:40:41 +01:00
Florian Bruhin
741ecac9ef More improvements for yesno prompt key hints 2016-11-03 08:40:41 +01:00
Florian Bruhin
7d63795613 Improve bindings output for yesno questions 2016-11-03 08:40:41 +01:00
Florian Bruhin
7d57d884d6 Add configuration options for prompts 2016-11-03 08:40:41 +01:00
Florian Bruhin
a33333eb41 Make the radius for prompt edges configurable 2016-11-03 08:40:41 +01:00
Florian Bruhin
bc4e340323 Save key mode to leave
Doing self._prompt.question.done() already sets self._prompt to the next
prompt or to None.
2016-11-03 08:40:41 +01:00
Florian Bruhin
80caed4642 Add missing docstring 2016-11-03 08:40:41 +01:00
Florian Bruhin
e110f3b590 Get rid of StatusBar._set_prompt_active 2016-11-03 08:40:41 +01:00
Florian Bruhin
fe59e0618f Rename download_open function 2016-11-03 08:40:41 +01:00
Florian Bruhin
fe230219a9 Fix lint 2016-11-03 08:40:41 +01:00
Florian Bruhin
f4be35c981 Add a LineEdit subclass for prompts 2016-11-03 08:40:41 +01:00
Florian Bruhin
433afe8658 Handle invalid values with :prompt-accept 2016-11-03 08:40:41 +01:00
Florian Bruhin
051b31d101 Fix reinitializing of key label 2016-11-03 08:40:41 +01:00
Florian Bruhin
75bb2265be Take text as pos. argument for _build_question 2016-11-03 08:40:41 +01:00
Florian Bruhin
6d7748f05f Add FilenamePrompt 2016-11-03 08:40:41 +01:00
Florian Bruhin
47208eb022 Fix :prompt-open-download 2016-11-03 08:40:41 +01:00
Florian Bruhin
d74b0109c7 Add key hints 2016-11-03 08:40:41 +01:00
Florian Bruhin
f0ed43ec20 Use message module as API for most questions 2016-11-03 08:40:41 +01:00
Florian Bruhin
756564ebff Get rid of message_bridge.set_cmd_text 2016-11-03 08:40:41 +01:00
Florian Bruhin
523369882a Add title/text to questions 2016-11-03 08:40:41 +01:00
Florian Bruhin
e3581a50ca Remove generated stylesheets again
We can just use jinja logic instead...
2016-11-03 08:40:41 +01:00
Florian Bruhin
1f011bdd5f Fix prompt focus handling 2016-11-03 08:40:41 +01:00
Florian Bruhin
33088588d9 half-working auth prompts 2016-11-03 08:40:41 +01:00
Florian Bruhin
903e31efa4 First prototype of new prompts 2016-11-03 08:40:41 +01:00
Jan Verbeek
2cc958fbb6 Stop progress bar from growing status bar height 2016-10-26 13:46:52 +02:00
Daniel Karbach
ef3968c165 setting values tabs->new-tab-position[-explicit]
left -> prev
right -> next
2016-10-18 17:17:17 +02:00
Florian Bruhin
5e6d8e3944 Merge branch 'master' of https://github.com/sebastian-frysztak/qutebrowser into sebastian-frysztak-master 2016-10-05 21:19:17 +02:00
Florian Bruhin
c36ae5ab8f Fix quit confirmation text for downloads 2016-10-05 10:13:01 +02:00
Sebastian Frysztak
f0cc168609 Style changes 2016-10-04 16:45:31 +02:00
Sebastian Frysztak
df83862088 Reserve space for empty favicon in _get_icon_rect. 2016-10-03 13:14:49 +02:00
Sebastian Frysztak
4f443c9f27 Reserve space for favicon with vertical tabs 2016-10-01 12:55:55 +02:00
Florian Bruhin
5ce1f0b912 Don't update scroll position with 0 tabs 2016-09-29 08:48:04 +02:00
Florian Bruhin
d4376c5196 Fix overlays with a top statusbar 2016-09-22 17:34:30 +02:00
Florian Bruhin
e6f62f8118 Remove now-unneeded _get_overlay_position 2016-09-22 17:34:17 +02:00
Florian Bruhin
750dfd98af Generalize statusbar-attached website overlays
We already had some duplicated logic for completion/keyhint/messageview,
and plan to add prompt overlays too now - so here we refactor related
code to have a list of overlays instead, which are all
resized/positioned by the mainwindow when needed.

This also changes the size management, which gets moved into the
sizeHint of the respective overlay widgets.
2016-09-22 17:04:39 +02:00
Florian Bruhin
7e30792bfe Fix lint 2016-09-15 14:51:22 +02:00
Florian Bruhin
f16b96aa28 Initial implementation of new messages 2016-09-15 14:51:21 +02:00
Florian Bruhin
4686e0349b Fix lint 2016-09-11 16:06:16 +02:00
Florian Bruhin
162e6d6483 Fix closing with no last-visible-main-window
Fixes #1918
2016-09-11 16:03:15 +02:00
Florian Bruhin
b949e4d73a Start splitting DownloadModel from DownloadManager
This mostly works, apart from remove_item/remove_items not being
available on the model.
2016-09-11 14:58:07 +02:00
Florian Bruhin
d0cf452ec8 Remove :prompt-yes and :prompt-no
Those are replaced by :prompt-accept yes and :prompt-accept no
2016-09-09 15:59:00 +02:00
Florian Bruhin
d579697245 Add a value argument to :prompt-accept 2016-09-09 15:48:42 +02:00
Florian Bruhin
3b16e171cb Avoid calling str() on bytes in mainwindow.py 2016-09-06 12:35:52 +02:00
Jakub Klinkovský
9669aca7d9 remove random description of variables in commands' docstrings
Full description is given at the top of qute://help/commands.html,
duplicating this for some commands where it might be useful is
unmaintainable.
2016-09-02 19:52:45 +02:00
Rok Mandeljc
469590d4e8 TabWidget: a possible fix for #1693 - grey area under custom tabbar
Attempt to fix the issue #1693 by:
- setting the TabBarStyle to TabWidget in addition to TabBar
- chain up SE_TabWidgetTabBar requests in TabBarStyle.subElementRect
  to the super() rather than self._style, in order to avoid getting
  adwaita-specific rect sizes instead of default ones that are also
  used in rendering.
2016-08-29 14:11:34 +02:00
Florian Bruhin
a40dd7edf6 Allow empty string for tabs -> title-format 2016-08-19 08:31:36 +02:00
Florian Bruhin
781e7554e4 Set open target for force_tab to tab-silent
Fixes #1328
2016-08-17 12:04:46 +02:00
Niklas Haas
c2cc28a72b
Add new-instance-open-target.window = first-opened
Fixes #1060.

In the process of adding this, I also decided to rewrite
mainwindow.get_window() for clarity (and also because flake8 was warning
about complexity).

Also adds some tests to the new-instance-target mechanism, in particular
a specific test for the issue in question.
2016-08-16 12:24:38 +02:00
Florian Bruhin
ccce55443f Fix TabWidget.init_config with PyQt 5.2
See #1847, #1775
2016-08-16 10:44:53 +02:00
Michael Hoang
ed137c01aa Make add_undo for tab close a keyword arg 2016-08-11 15:18:07 +10:00
Michael Hoang
af97f9efae Add add_undo parameter for closing tabs
By default, closed tabs should be undoable, but when a tab is detached
:undo should not reopen that tab in the old window.
2016-08-11 07:44:11 +10:00
Florian Bruhin
08d9243c3e Merge branch 'haasn-lastvisible' 2016-08-10 19:58:41 +02:00
Florian Bruhin
3b34032b4b Merge branch 'feature/undo-to-old-pos' of https://github.com/airodactyl/qutebrowser into airodactyl-feature/undo-to-old-pos 2016-08-10 17:47:25 +02:00
Niklas Haas
6293fad2eb
Add general->new-instance-open-target.window=last-visible
I usually use my browser with a one-window-per-workspace flow. If I
click on a URL anywhere, I personally would prefer it to go to the
browser instance that's on the same workspace.

To this end, the easiest way to accomplish this is to simply track when
windows are made visible and register them as the last visible object.

(To get finer control for when you have multiple windows on the same
workspace, focus changes also update the last visible object - the
implication being here that focusing something also means you're looking
at it)

Not all users may like this behavior, so I consider it strictly optional.
2016-08-10 17:01:12 +02:00
Florian Bruhin
77531d09df Move history triggering out of WebView 2016-08-10 13:14:38 +02:00
Michael Hoang
cc5667f268 Add code to save and restore the old tab position 2016-08-10 19:28:34 +10:00
Niklas Haas
6d181e5c6f
Add new-instance-open-target.window setting
This adds the ability to open new tabs in the last-focused window
instead, which fixes #1801.

Right now the only other option is probably not that useful for human
users but it's required to make tests behave deterministically and
consistently. (But with #881 on the roadmap, I would implement this as
another choice)

To this end, also make the test framework set this option to preserve
the invariant against which existing tests are written: that spawning a
new window would effectively also focus it.
2016-08-10 00:06:12 +02:00
Niklas Haas
2223a285ef Remove ui -> hide-mouse-cursor setting
This was currently almost completely broken, yet nobody complained. The
new behavior (in the previous commit) makes this always hide the mouse
cursor, even when an input field has focus.

Since the only two easy options to implement are "never hide" and
"always hide", combined with the fact that both are sort of useless to
an end-user, just remove the option until somebody wants it back.
2016-08-09 23:32:17 +02:00
Florian Bruhin
b6fbd3ce3a Merge branch 'better-variables' of https://github.com/blyxxyz/qutebrowser into blyxxyz-better-variables 2016-08-07 11:33:01 +02:00
Florian Bruhin
ab0d9ca499 Remove another unneeded FIXME
Closes #112.
[ci skip]
2016-08-05 09:35:06 +02:00
Jan Verbeek
7999c493ac Remove unnecessary import, split long line 2016-08-04 15:16:35 +02:00
Jan Verbeek
827de1743d Document no_replace_variables, misc fixes
Add no_replace_variables to the asciidoc, improve its description in
the decorator, remove now unnecessary argument parsing in set-cmd-text
2016-08-04 13:21:19 +02:00
Daniel Schadt
d21b42662d Minor Text Fixes
default (program) -> default application
surround {} with backticks
mention that the filename will be appended in the docstrings
2016-08-04 12:07:51 +02:00
Jan Verbeek
c7c5a98506 Allow {url} and {url:pretty} as parts of arguments
This makes commands like `:open web.archive.org/web/{url}` possible.
This commit also adds a no_replace_variables command register argument
that stops the replacement from happening, which is important for
commands like `:bind` and `:spawn` that take a command as an argument.
2016-08-04 02:43:02 +02:00
Daniel Schadt
71102cceb0 docstring & documentation fixes 2016-08-03 18:06:28 +02:00
Daniel Schadt
fa6c552d7b add an application param for prompt-open-download 2016-08-03 17:59:32 +02:00
Ryan Roden-Corrent
e8f73b0fe6 Break up MainWindow.__init__.
Split out initialization of a few areas into private functions so
pylint won't complain about a long method.
2016-07-28 12:20:24 -04:00
Ryan Roden-Corrent
f31e890862 Move completion_item_{next,prev} to CompletionView.
These commands are more closely tied to the CompletionView than
Completer. This removes the need for an extra signal tying the
CompletionView to the Completer.

The call to _open_completion_if_needed was moved to
on_selection_changed, as this will already be called when a new item is
selected.
2016-07-28 12:20:24 -04:00
Ryan Roden-Corrent
b9cf9d180b Decouple Completer and CompletionView.
Rather than having a CompletionView instantiate and register a
Completer, instantiate both in MainWindow. The CompletionView is the
parent of the Completer, and communicates by emitting
selection_changed, meaning it no longer needs to contain a reference to
the Completer.
2016-07-28 12:20:24 -04:00
Florian Bruhin
3ccb691e9f tab API: Rename scroll to scroller
The scroll attribute did overwrite QWidget.scroll which is unfortunate.
2016-07-26 13:19:07 +02:00
Florian Bruhin
70d6f90f08 Display key hint for :prompt-download-open
This also splits up _display_question into one method per mode.
2016-07-26 11:08:03 +02:00
Florian Bruhin
f4f6a3dac1 Merge branch 'open-download' of https://github.com/Kingdread/qutebrowser into Kingdread-open-download 2016-07-26 10:32:34 +02:00
Florian Bruhin
76eab7617b Remove @pyqtSlot for functions and non-QObjects
Fixes #1669
2016-07-23 11:42:50 +02:00
Daniel Schadt
940b124253 switch set literal to list literal
See PR #1642.

😗🎶
2016-07-12 22:31:43 +02:00
Jan Verbeek
bbc46d28ff Use lists instead of tuples for comparing
Per one of the diff comments on #1597:
> I used to use a tuple for constant things, but nowadays I'd actually
> prefer a list as a tuple is something more heterogeneous (i.e. it
> makes sense to have a `(x, y)` point as a tuple, but a list of points
> would be a list).
> At some point I should probably change it to a list everywhere 😉
2016-07-12 22:05:32 +02:00
Daniel Schadt
a088f238e5 usertypes: remove Frankenstein's enum
This approach is not as weird in Python and still works.

DownloadTarget.OpenDownload has been renamed to OpenFileDownloadTarget,
since OpenDownloadDownloadTarget didn't look as nice.
2016-07-12 17:10:36 +02:00
Daniel Schadt
d42d980dda downloads: introduce target= param for .get/.fetch
This parameter replaces the filename and fileobj parameters. This makes
it easier to add more download targets, since only one may be "chosen".
With the OPEN_DOWNLOAD special case added, handling of filename got a
bit ugly, since it may be either None, OPEN_DOWNLOAD or a str with the
file path, and we had to make sure only one target was chosen.

With the new target enum, this handling can be simplified and we
automatically get the guarantee that only one target is chosen.
2016-07-12 17:06:40 +02:00
Daniel Schadt
81b2688c70 downloads: use global TempDownloadManager
This way, all temporary downloads will end up in the same directory and
everything is cleaned up at program exit, not when the corresponding
window is closed.
2016-07-12 16:52:01 +02:00
Daniel Schadt
c060f9e5c2 allow downloads to be openened directly
The file is saved in a temporary directory, which is cleaned up when the
window is closed.
2016-07-12 16:52:01 +02:00
Florian Bruhin
ed5af29ac9 Fix lint 2016-07-11 16:43:06 +02:00
Florian Bruhin
e80475ed57 Remove support for showing JS statusbar messages
Closes #1579.
2016-07-11 16:19:44 +02:00
Florian Bruhin
f46d6cbe27 Fix url_text, take 3 2016-07-11 15:06:36 +02:00
Florian Bruhin
a470bfc3f3 Get rid of url_text_changed signal
Instead we simply use url_changed which (similar to Qt's urlChanged)
simply has a QUrl argument.
2016-07-11 14:28:51 +02:00
Florian Bruhin
8567fffdad Merge branch 'qtwebengine' 2016-07-11 10:56:20 +02:00
Florian Bruhin
b791095324 Rename browser.tab module and classes 2016-07-10 17:27:02 +02:00
Florian Bruhin
cc11af5e28 Fix lint 2016-07-08 11:21:00 +02:00
Florian Bruhin
55784f9783 Add tab.create() helper function 2016-07-08 10:38:52 +02:00
Florian Bruhin
09f4c2199e Rename widget to tab in some places
This also fixes the cur_url access.
2016-07-08 10:08:44 +02:00
Florian Bruhin
2befebaf3a Don't use properties for AbstractTab
Otherwise exceptions in there could be hidden by Python/PyQt.

Some places are not changed yet, as there are also other renames in the
next commits.
2016-07-08 10:05:46 +02:00