Commit Graph

1115 Commits

Author SHA1 Message Date
Florian Bruhin
6f904759b5 urlutils: Fix str() of FuzzyUrlError. 2015-05-20 13:36:40 +02:00
Florian Bruhin
f8db4b8147 urlutils: Improve debug logging. 2015-05-20 13:36:40 +02:00
Florian Bruhin
14df72a7a1 urlutils: Add get_errstring(). 2015-05-20 13:36:40 +02:00
Florian Bruhin
e590bf26ad urlutils: Check bogus IPs in _is_url_dns. 2015-05-20 13:36:40 +02:00
Florian Bruhin
40cc354030 urlutils: Pass URL string to _is_url_dns. 2015-05-20 13:36:40 +02:00
Florian Bruhin
c0b41d8c62 urlutils: Use utils.raises in _is_url_naive. 2015-05-20 13:36:40 +02:00
Florian Bruhin
1f048a38f8 urlutils: Remove dead code in _get_search_url.
term should always contain something.
2015-05-20 13:36:40 +02:00
Florian Bruhin
e187cda292 Sort attrs for utils.get_repr(). 2015-05-19 16:23:50 +02:00
Florian Bruhin
8941b5dc96 Merge branch 'visual' 2015-05-18 21:43:25 +02:00
Florian Bruhin
81ba49e79b Fix tests on OS X, take two. 2015-05-17 18:59:40 +02:00
Florian Bruhin
10985c3505 Fix handling of Meta/Control on OS X.
Fixes #110.
See #420.

See http://doc.qt.io/qt-5.4/osx-issues.html#special-keys :

    To provide the expected behavior for Qt applications on OS X, the Qt::Meta,
    Qt::MetaModifier, and Qt::META enum values correspond to the Control keys
    on the standard Apple keyboard, and the Qt::Control, Qt::ControlModifier,
    and Qt::CTRL enum values correspond to the Command keys.
2015-05-17 18:44:36 +02:00
Florian Bruhin
b619d835e6 Make usertypes.Exit an IntEnum. 2015-05-17 00:29:28 +02:00
Florian Bruhin
3f98bf372e Merge branch 'smoke'
Conflicts:
      doc/qutebrowser.1.asciidoc
      qutebrowser/app.py
      qutebrowser/config/config.py
      qutebrowser/qutebrowser.py
      tox.ini
2015-05-17 00:28:56 +02:00
Florian Bruhin
9be5992a9a Smoke test WIP 2015-05-16 23:43:34 +02:00
Florian Bruhin
54131e9d3e Add --basedir arg with multiple instance support.
Closes #510.
2015-05-16 23:10:20 +02:00
Florian Bruhin
c762340a0c Add --datadir/--cachedir arguments. Closes #136. 2015-05-16 22:12:27 +02:00
Florian Bruhin
7e2c67a7e4 Fix tests/lint. 2015-05-15 20:25:29 +02:00
Florian Bruhin
12940eb542 Handle QtInfoMsg (Qt 5.5) in qt_message_handler. 2015-05-15 20:15:09 +02:00
Artur Shaik
489c913e58 Implement caret selection and positioning
Added option to webview for selection enabled caret mode.
In status bar checking value of this option to identificate about it.

Added bindings: <Space> for toggle selection mode, <Ctrl+Space> drop
selection and keep selection mode enabled.

In webview added javascript snippet to position caret at top of the
viewport after caret enabling. This code mostly was taken from cVim sources.
2015-05-05 12:21:48 +06:00
Florian Bruhin
d3a7b2e4ca Big refactoring of app.py. 2015-04-30 07:37:25 +02:00
Florian Bruhin
6c8e073dc8 Merge branch 'caret_visual_mode' of https://github.com/artur-shaik/qutebrowser into visual
Conflicts:
      qutebrowser/browser/commands.py
      qutebrowser/browser/webview.py
      qutebrowser/config/configdata.py
2015-04-21 21:29:00 +02:00
Florian Bruhin
a6e3199616 Fix binding of special keys with lower-case mods. 2015-04-13 22:08:57 +02:00
Florian Bruhin
39f7850942 Fix lint. 2015-04-13 08:52:58 +02:00
Florian Bruhin
c071bcbec8 Clean up loggers. 2015-04-13 08:49:04 +02:00
Artur Shaik
695712e50c Basic caret and visual modes implementation
Allow user switch in caret mode for browsing with caret, and visual mode
for select and yank text with keyboard.

Default keybindings is c or v for caret mode, and again v for visual mode. All
basic movements provided by WebAction enum implemened with vim-like
bindings. Yanking with y and Y for selection and clipboard respectively.

There is bug/feature in WebKit that after caret enabled, caret doesn't
show until mouse click (or sometimes Tab helps). So I add some workaround
for that with mouse event. I think should be better aproach.

Signed-off-by: Artur Shaik <ashaihullin@gmail.com>
2015-04-09 22:55:42 +06:00
Florian Bruhin
76651822bd Merge pull request #16 from hackebrot/layout
Adopt test layout to pytest.
2015-04-08 14:03:02 +02:00
Florian Bruhin
4e2ef45cd8 Ignore Qt warning about WOFF/zlib. 2015-04-07 13:00:26 +02:00
Bruno Oliveira
3de584f02c Moving testfile used by test_utils into qutebrowser.utils 2015-04-04 19:15:23 -03:00
Florian Bruhin
eeb875d098 Handle unavailable registry in on_focus_changed. 2015-04-01 00:02:29 +02:00
Florian Bruhin
8ebac8d38c Various spelling fixes. 2015-03-31 21:11:47 +02:00
Florian Bruhin
eb3b0b960f Use hunter for line tracing. 2015-03-31 20:38:46 +02:00
Florian Bruhin
5233e7fac8 Fix UnboundLocalError on invalid quickmarks.
This also improves FuzzyUrlError messages.
2015-03-29 21:20:42 +02:00
Florian Bruhin
82322beb03 Fix pep257 issues. 2015-03-26 07:08:54 +01:00
Florian Bruhin
e7f5433da3 Enable python warnings earlier and unconditionally. 2015-03-23 07:40:22 +01:00
Florian Bruhin
97b678d8c7 Don't display time deltas < 1s in messages. 2015-03-22 23:50:12 +01:00
Florian Bruhin
c13e09b706 Add option to queue all msgs in unfocused windows. 2015-03-22 23:47:16 +01:00
Florian Bruhin
157c25bb13 Queue messages for 'current' window if unfocused.
Fixes #512.
2015-03-22 22:39:56 +01:00
Florian Bruhin
19d369377e Update references to HACKING/CONTRIBUTING. 2015-03-20 12:18:15 +01:00
Florian Bruhin
adb11360db Disallow tab=None with objreg.get(scope='tab').
This would've made it a lot easier to detect #563.
2015-03-19 22:28:24 +01:00
Florian Bruhin
2dcf323077 Add missing docstrings. 2015-03-17 06:39:02 +01:00
Florian Bruhin
70cd8e74eb Measure time it takes to init URL completion. 2015-03-14 13:32:47 +01:00
Florian Bruhin
94f694bd77 Add an utils.newest_slice.
This takes an iterable and uses itertools.islice to get the n newest elements
from it.
2015-03-13 19:25:48 +01:00
Florian Bruhin
34b24aafa8 Fix lint 2015-03-11 22:22:49 +01:00
Jimmy
59948a038c Add new UrlCompletion model which includes web history and quickmarks.
I went to some effort to avoid duplipcating code which which leads to some
arguably ugly class method calling.
2015-03-11 21:50:16 +01:00
Jimmy
f6a7ef3985 Add url history completion for open.
Adds a basic completion model implementation around the global browser
history and registers that for the open command.

Modifies WebHistory to add an __iter__ method and to use a dict instead of a
set to store an entire HistoryEntry for each archived item instead of just the
URL. Brief tests showed that the lookup time for set and dict are very
similar. They are at least on the same order of magnitude. Testing membership
of a list on the other hand, as was the case before a set was used, was four
orders of magnitude slower on my machine.
2015-03-11 21:50:16 +01:00
Florian Bruhin
e8e6d8409b Adjust pylint exceptions. 2015-03-11 20:14:39 +01:00
Patric Schmitz
4fa64350ca Handle URLs with double-colon at the beginning as search strings
Closes #544. We might also merge #542 now.
2015-03-11 17:35:32 +01:00
Florian Bruhin
2da45e98ca Auto-handle equal SSL errors for the same host.
For every (scheme, host, port) tuple, we save all SSL errors we asked the user
about, and if everything matches (scheme, host, port, error, certificate), we
don't ask the user again.

Fixes #422.
2015-03-10 07:58:40 +01:00
Florian Bruhin
0827ddec86 utils.log: Simplify stack printing on Qt warnings. 2015-03-06 16:33:22 +01:00
Florian Bruhin
3e5b9a4a4a log.utils: Add Qt warning filter context manager. 2015-03-06 16:32:26 +01:00
Florian Bruhin
6d51fcfb2e Add a do_search argument to fuzzy_url.
This turns off searching no matter what autosearch is set to, and also makes it
possible to use fuzzy_url before the config is up.

For now, we use this for quickmarks and the startpage.
2015-02-27 08:07:40 +01:00
Florian Bruhin
8e0dddf86a Restore sys.std* in utils.fake_io on exceptions. 2015-02-26 17:47:07 +01:00
Florian Bruhin
fcbd69e209 Clean up standarddir handling #2.
We already attempted this in c5a2039da4, but
having the directories as module attributes means they'll be created on start
(rather than when they're actually used), and it'd also be impossible to change
them after init for some reason in the future.

To still have a nice short API, we simply change the attributes to functions.
2015-02-26 07:01:22 +01:00
Florian Bruhin
9d716d74b4 Fix lint. 2015-02-25 18:01:30 +01:00
Florian Bruhin
caad56c978 Print stacktrace on Qt warnings. 2015-02-24 07:12:25 +01:00
Florian Bruhin
c5a2039da4 Refactor QStandardPaths handling. 2015-02-22 19:13:51 +01:00
Florian Bruhin
359482b511 Fix getting Qt arguments. 2015-02-21 18:52:14 +01:00
Florian Bruhin
9534deb2e7 Add a context manager to unset organizationName. 2015-02-18 22:18:55 +01:00
Florian Bruhin
8f1d81a644 Add session support.
Closes #12.
See #499.
See #11.

This adds PyYAML as a new dependency.

It adds the following new commands:

    :session-delete <name>
    Delete a session.

    :session-load <name>
    Load a session.

    :session-save [<name>]
    Save a session.

    :wq [<name>]
    Save open pages and quit.

And the following new settings:

    general -> save-session:
    Whether to always save the open pages.
2015-02-16 20:26:09 +01:00
Florian Bruhin
53b024f246 docutils: Fix handling of ", or None ...". 2015-02-14 19:41:10 +01:00
Florian Bruhin
fba2b2b5ae fuzzy_url: handle invalid URLs with autosearch off
Fixes #497.
2015-02-02 22:24:01 +01:00
Florian Bruhin
a95dda8e92 Handle explicit searches with auto-search=false.
See #497.
2015-02-02 22:19:43 +01:00
Florian Bruhin
59a11c178f Don't open relative files in fuzzy_url with :open
With most actions which use fuzzy_url (:open/quickmarks/etc.) it's rather
confusing when relative files are opened - the only place where they should be
opened is when we're processing a commandline argument.
2015-02-01 23:55:37 +01:00
Florian Bruhin
43c5dc3bf6 Refactor saving logic, only save stuff if modified.
Fixes #113.
See #11.
2015-02-01 00:43:07 +01:00
Florian Bruhin
7169d02609 Support running qutebrowser without SSL. 2015-01-26 13:15:08 +01:00
Florian Bruhin
223f8f243e Make it possible to display warnings in the bar.
Closes #114.
2015-01-15 22:29:00 +01:00
Florian Bruhin
8c227324fe Use qurl_from_user_input() in urlutils.is_url().
It seems 354018efcd broke IPv6 IPs on older Qt
versions:

======================================================================
FAIL: test_urls (qutebrowser.test.utils.test_urlutils.IsUrlTests) (url='2001:41d0:2:6c11::1')
Test things which are URLs.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/lib/buildbot/slaves/slave/ubuntu-utopic/build/qutebrowser/test/utils/test_urlutils.py", line 168, in test_urls
    self.assertTrue(urlutils.is_url(url), url)
AssertionError: False is not true : 2001:41d0:2:6c11::1
2015-01-09 22:13:23 +01:00
Florian Bruhin
a412814dee Enter KeyMode.normal directly in ModeManager.
We used to enter KeyMode.none and then with a zero-time singleShot QTimer enter
the normal mode. This doesn't really make sense, and caused an exception if a
keypress was processed before the timer fired.

Fixes #433.
2015-01-09 21:49:39 +01:00
Florian Bruhin
354018efcd Make sure QUrl::fromUserInput is valid in is_url.
Fixes #460.

Without this fix, it's possible for URLs to be valid according to is_url, but
not according to QUrl::fromUserInput, e.g. "http:foo:0". This caused an
exception later because fuzzy_url runs qtutils.ensure_valid.
2015-01-09 21:49:26 +01:00
Florian Bruhin
5fc900a1cb Merge branch 'master' of https://github.com/balanceofcowards/qutebrowser into balanceofcowards-master 2015-01-08 23:09:58 +01:00
Andreas Fischer
34c9a73e32 Fix bug #399 (crashes on systems with pyqt < 5.3)
Crash occurs in usertypes.py / Question class due to Python slots
being called on deleted Qt objects. This causes either a TypeError or
an AttributeError (probably depending on the state of the deleted Qt
object?).

Fixed by declaring slots in the Question object explicitly via
decorator "@pyqtSlot()".

Possible further TODOs:
- Find out whether this is a problem for slots in other objects as
  well.
- Create unittest for this bug (might me somewhat tricky, though).
2015-01-08 09:52:53 +01:00
Florian Bruhin
b12b83f98c Hide 2 more Qt warnings. 2015-01-07 06:59:48 +01:00
Florian Bruhin
e54d3c21ee Add SSL info to version info. 2015-01-03 18:19:16 +01:00
Florian Bruhin
7dbbfedd3b Replace unencodable chars in download filenames.
Fixes #427.
2015-01-03 17:50:59 +01:00
Florian Bruhin
450d1ab70d Update copyright years 2015-01-03 15:51:31 +01:00
Florian Bruhin
f1435ce51f Use a dirty hack to copy icon files into package.
See #325.
2014-12-28 14:50:25 +01:00
Florian Bruhin
2a4e884e1b Set window icon. Closes #325. 2014-12-28 14:35:28 +01:00
Florian Bruhin
03ac8874ff Rewrite keymode handling to use only one mode.
Fixes #417.
Fixes #418.
See 4ab5d2df28.
2014-12-28 00:01:27 +01:00
Florian Bruhin
bf4d6a5707 Handle an invalid cwd properly.
Fixes #370.
2014-12-26 15:07:18 +01:00
Florian Bruhin
dec6842370 Remove unnecessary if-branch in fuzzy_url.
The first branch already checks for `os.path.exists(path)`, so it doesn't make
sense for the second one to check that again (ANDed with some other condition).
2014-12-26 15:03:30 +01:00
Florian Bruhin
017f143a5f Add a binary mode to utils.read_file.
This will be needed for #325.
2014-12-22 23:44:09 +01:00
Florian Bruhin
4363db90c0 Don't treat things like "31c3" as IP address.
Fixes #388.
2014-12-22 18:38:45 +01:00
Florian Bruhin
57c8dff396 Handle category being None in Qt message handler.
Fixes #397.
2014-12-22 17:33:35 +01:00
Florian Bruhin
877d814815 Clean up _get_window_registry. 2014-12-21 14:13:40 +01:00
Florian Bruhin
05e835684d Fix item sorting in NeighborList.
See #361.
2014-12-18 23:20:38 +01:00
Florian Bruhin
29ce0a5157 Fix handling of small/big fuzzyval's in NeighborList.
This fixes an exception when having a really big or small zoom (e.g. 0) and
then using +/-.

Fixes #361.
2014-12-18 23:04:43 +01:00
Florian Bruhin
512d7c4448 Simplify config exception tree and handling.
Also make sure we catch all config-related errors in all related places.
Fixes #324.
2014-12-17 11:17:18 +01:00
Florian Bruhin
06ec1a3885 Big file tree reorganisation.
Closes #255.
Should make a lot more sense now ;)
2014-12-13 17:28:50 +01:00
Florian Bruhin
fc0428ef5f Fix ws stripping with simple_split and no flags.
Fixes #279.
2014-12-12 17:29:01 +01:00
Florian Bruhin
decfd02033 Use a QNAM to pastebin from crash dialog.
Fixes #280.
2014-12-11 23:34:03 +01:00
Florian Bruhin
cba120ac76 Fix starting without config. 2014-12-11 22:08:43 +01:00
Florian Bruhin
8bad7c0e4c Use maxsplit=1 for :repeat and :later. 2014-12-11 21:27:44 +01:00
Florian Bruhin
8c4c465c91 Fix completion update when the length is unchanged.
Fixes #312.
2014-12-11 18:37:22 +01:00
Florian Bruhin
0ecf8661eb Create inexistent paths in standardpath.get.
See #25.
2014-12-10 18:05:42 +01:00
Florian Bruhin
ec07e4f8be Handle OSError exceptions where appropriate.
Fixes #25.
2014-12-10 18:00:49 +01:00
Florian Bruhin
ea76bdfb0f Replace all IOError by OSErrors.
Starting with Python 3.3, IOError is just an alias for OSError.
2014-12-10 16:48:23 +01:00
Florian Bruhin
0b82fdb4d8 Fix text/newline handling with QSaveFile.
Fixes #309.

We use io.TextIOWrapper which already handles newline converting, so we
shouldn't open the QSaveFile with QIODevice.Text in the mode, as this lead to
double-converting newlines, which in turn produced this error message on
Windows.
2014-12-10 10:58:55 +01:00
Florian Bruhin
bf24578dfd Use QSaveFile for saving files. Fixes #234. 2014-12-08 23:42:26 +01:00
Florian Bruhin
24d21bfe98 I suck. 2014-12-05 21:15:11 +01:00
Florian Bruhin
9946b4b0f6 Really disable that damn pylint check 2014-12-05 21:14:18 +01:00
Florian Bruhin
7aa01802d9 Whoops, s/ignore/disable/ 2014-12-05 21:08:15 +01:00
Florian Bruhin
c80f83671f pylint: ignore pypeg2 import error 2014-12-05 21:03:23 +01:00
Florian Bruhin
98a384c167 Properly ignore distutils-bug in qtutils. 2014-12-05 12:56:32 +01:00
Florian Bruhin
653fbe81d0 pylint: Ignore distutils ImportError.
See https://bitbucket.org/logilab/pylint/issue/73/
2014-12-05 12:46:57 +01:00
Florian Bruhin
64e43c6e14 Ignore IPC in exception handler. Closes #262. 2014-11-30 22:30:26 +01:00
Florian Bruhin
e3dfaa6a4b Send cwd over IPC. Fixes #254. 2014-11-30 19:22:35 +01:00
Florian Bruhin
9327c2a9ae Remove trailing spaces in simple_split with keep=False.
Fixes #279.
2014-11-30 18:59:51 +01:00
Florian Bruhin
6d419b8346 Avoid starting downloads before we know the filename.
Closes #278.
2014-11-30 18:47:40 +01:00
Mathias Fussenegger
aeb6ceb942 correct search engine regex to match multiple search terms 2014-11-27 22:59:43 +01:00
Florian Bruhin
9bd8d3f2e5 Merge branch 'search-engine-syntax' of https://github.com/mfussenegger/qutebrowser into mfussenegger-search-engine-syntax 2014-11-27 22:19:07 +01:00
Mathias Fussenegger
68398035ef change search engine syntax to match that of dwb
as pointed out in
https://github.com/The-Compiler/qutebrowser/issues/14 this
commit changes the syntax so that DuckDuckGo bang syntax
works.
2014-11-27 21:57:51 +01:00
Florian Bruhin
68b9aaace4 Add utils.raises. Closes #274. 2014-11-27 20:44:48 +01:00
Florian Bruhin
e8966ec7bb Remove some shlex vdebug. 2014-11-26 21:02:20 +01:00
Florian Bruhin
010efcee93 Don't treat floats as IPs either. 2014-11-25 21:19:24 +01:00
Florian Bruhin
683a306c51 Fix @log_signals with deleted objects. 2014-11-25 19:51:53 +01:00
Florian Bruhin
6973050ccc Don't treat any valid int as IP 2014-11-24 21:49:48 +01:00
Florian Bruhin
7be32dd70c Don't handle hexadecimal numbers as IP addresses.
Fixes #269.
2014-11-24 21:47:22 +01:00
Florian Bruhin
0134646c67 Basic host blocker implementation.
Squashed commit of the following:

commit 8d38e9c2f13778fe21cc2c1d61c5d26907b469ef
Author: Florian Bruhin <git@the-compiler.org>
Date:   Mon Nov 24 21:04:30 2014 +0100

    Fix default adblock lists.

commit a734b87e753daec28fa0c6643af8de088041179a
Author: Florian Bruhin <git@the-compiler.org>
Date:   Mon Nov 24 21:04:14 2014 +0100

    Fix error output on adblock errors.

commit 15bc10f605ebb86c12523bb81b55d1440fcacdbf
Author: Florian Bruhin <git@the-compiler.org>
Date:   Mon Nov 24 07:38:47 2014 +0100

    Update adblock docks

commit 475d530ee50f52295c2171208c6a0278750cf4b4
Author: Florian Bruhin <git@the-compiler.org>
Date:   Mon Nov 24 07:38:39 2014 +0100

    Remove adblock ram calculation

commit 0e52cc3ec93912fd3fa3ecf6de833aef0c540a60
Author: Florian Bruhin <git@the-compiler.org>
Date:   Mon Nov 24 07:03:11 2014 +0100

    Adjust docs for hosts-file.

commit 941df242d38300d7e42a26f2e67cfd668c6f8590
Author: Florian Bruhin <git@the-compiler.org>
Date:   Mon Nov 24 06:55:40 2014 +0100

    Add logging for host blocking.

commit 4ca1561ccf32affb8439113f4f1c222d7dee1e14
Author: Florian Bruhin <git@the-compiler.org>
Date:   Mon Nov 24 00:11:59 2014 +0100

    Don't do adblock updates automatically after changing config.

commit 26d4e86ca393d4a1a5fd8fac7729ce9c2e7cd240
Author: Florian Bruhin <git@the-compiler.org>
Date:   Thu Nov 20 19:58:32 2014 +0100

    adblock: Don't delete blocked hosts between files.

commit c7af08c68adf3c135d5a2fc746eb6d3c715b0711
Author: Florian Bruhin <git@the-compiler.org>
Date:   Thu Nov 20 19:58:22 2014 +0100

    adblock: Add comments for rewinding.

commit 9af87313088cd79ab8c022bcee9308511d6328f0
Author: Florian Bruhin <git@the-compiler.org>
Date:   Thu Nov 20 19:56:39 2014 +0100

    adblock: Rewind files properly.

commit 7f3dadc04ba68c92d6789ecf5822f7b2dfc367a0
Author: Florian Bruhin <git@the-compiler.org>
Date:   Thu Nov 20 19:40:18 2014 +0100

    Add untested file support.

commit 334c01867d510b599d94c9397097a1d789c0c64c
Author: Florian Bruhin <git@the-compiler.org>
Date:   Wed Nov 19 22:33:25 2014 +0100

    adblock: Handle download errors correctly

commit 3a9af4cd4a903386dc323640f1d52e03383b3aa7
Author: Florian Bruhin <git@the-compiler.org>
Date:   Wed Nov 19 22:23:04 2014 +0100

    adblock: Add error handling for invalid input.

commit 5934c3c027ff9205adb512aab396ca913b31e50d
Author: Florian Bruhin <git@the-compiler.org>
Date:   Wed Nov 19 22:22:47 2014 +0100

    adblock: Handle done_count correctly.

commit 3ba5e83fda9b7d764bfcf1e4b1aa479daae39791
Author: Florian Bruhin <git@the-compiler.org>
Date:   Wed Nov 19 21:18:10 2014 +0100

    Read adblock files when they finished downloading.

commit 86a5ecf194445e2ebe0cf22b59e24223387880c5
Author: Florian Bruhin <git@the-compiler.org>
Date:   Wed Nov 19 20:51:25 2014 +0100

    Add hosts-file.net to host-block-lists.

commit 121f0bff953497449c32e45e671b71d954beed4c
Author: Florian Bruhin <git@the-compiler.org>
Date:   Wed Nov 19 20:51:13 2014 +0100

    Add zip-file support to adblock.py.

commit f1c0e67cb9d890a44a1d1f545ace997f0a453f91
Author: Florian Bruhin <git@the-compiler.org>
Date:   Mon Nov 17 07:41:14 2014 +0100

    print line counts for debugging

commit 75dbb8964fd44862abc378ef26fb47f8cda6061e
Author: Florian Bruhin <git@the-compiler.org>
Date:   Fri Nov 14 19:22:20 2014 +0100

    Use statusbar messages for adblock

commit 74d9142d831496e02c5baae72c2723e320af1778
Author: Florian Bruhin <git@the-compiler.org>
Date:   Fri Nov 14 08:34:46 2014 +0100

    Add basic adblock functionality.
2014-11-24 21:05:09 +01:00
Florian Bruhin
655115858c Handle OSError when using subprocess. 2014-11-23 18:07:05 +01:00
Florian Bruhin
7b1ea3ff40 Typo: s/similiar/similar/g 2014-11-19 22:46:52 +01:00
Florian Bruhin
2fe72d8087 Simplify utils.log.
The overcomplicated parsing with re didn't really give us much benefits, and
lead to exceptions and segfaults[1] (?) already, so it's best to just get rid
of it entirely.

[1] http://paste.the-compiler.org/view/26768694
2014-11-19 22:43:49 +01:00
Florian Bruhin
336bbc370e Ignore 'content-type missing' Qt warning. 2014-11-19 22:38:56 +01:00
Florian Bruhin
75d1f072c2 Add a raise_cmdexc_if_invalid to urlutils. 2014-11-18 19:49:31 +01:00
Florian Bruhin
b0c8ca9e1a Escape regex correctly. 2014-11-18 07:34:50 +01:00
Florian Bruhin
3622f35865 Hide 'load glyph failed' Qt warning. 2014-11-16 16:25:37 +01:00
Florian Bruhin
9bf776aee1 Fix TypeError when closing tabs with older PyQt-versions.
Fixes #257.

It seems disconnecting a signal from a destroyed object gives us a
"TypeError: pyqtSignal must be bound to a QObject, not 'WebView'" instead of a
RuntimeError with older PyQt-versions (5.2.1).
2014-11-14 18:55:48 +01:00
Florian Bruhin
4c8ecbb40d Fix disconnecting from objreg for deleted objects. 2014-11-12 20:22:49 +01:00
Florian Bruhin
2419071b0f Disconnect destroyed signal of objects deleted in objreg.
Fixes #205.
2014-11-12 20:19:26 +01:00
Florian Bruhin
5fa1556588 Fix getting last main window when it was closed.
Fixes #242.
2014-11-10 23:21:31 +01:00
Florian Bruhin
6310081ef5 Clean up simple_split. 2014-11-10 23:02:34 +01:00
Florian Bruhin
c70f6f534b Get rid of dotted_getattr. 2014-11-10 18:59:13 +01:00
Florian Bruhin
398da22b54 Fix splitting with split=False and maxsplit=0.
Since re.split behaves differently from str.split with maxsplit=0,
4e9b9baeab broke things like ":open foo bar".
2014-11-10 10:38:19 +01:00
Florian Bruhin
d71147898b Move completion logic from statusbar widget to completer.
Fixes #247.
2014-11-10 07:49:22 +01:00
Florian Bruhin
404e425a9e Clean up faulthandler import 2014-11-09 22:59:14 +01:00
Florian Bruhin
5f9c56bcdd Fix exception when logging Qt warning without function. 2014-11-09 22:57:39 +01:00
Florian Bruhin
bc009ae624 Fix lint in split.py 2014-11-09 22:15:44 +01:00
Florian Bruhin
40be804ee6 Don't handle "foo: bar" as URL.
Fixes #227.
2014-11-09 21:54:15 +01:00
Florian Bruhin
bf752f6ea4 Update pyPEG2 install instructions.
Fixes #243.
2014-11-09 21:48:33 +01:00
Florian Bruhin
b7c1f32922 Strip pattern when completing. 2014-11-09 20:47:39 +01:00
Florian Bruhin
4e9b9baeab Split commands with split=False correctly.
Fixes #231.
2014-11-09 20:46:21 +01:00
Florian Bruhin
f689c89316 Merge branch 'shlex'
Fixes #122.
Fixes #232.
2014-11-09 18:25:51 +01:00
Florian Bruhin
31ee458e56 Hide _GTK_LOAD_ICONTHEMES Qt error 2014-11-08 20:03:33 +01:00
Florian Bruhin
2b8d6c5dd7 Use a for loop 2014-11-06 09:02:21 +01:00
Florian Bruhin
5fe04a6aec Make completion work more or less 2014-11-06 08:26:01 +01:00
Florian Bruhin
ac61422059 Fix splitting of whitespace at EOL 2014-11-06 08:25:46 +01:00
Florian Bruhin
76b72d3438 Try splitting with whitespace at next token. 2014-11-06 07:14:36 +01:00
Florian Bruhin
ca1ca7db36 shlexer cleanup 2014-11-06 07:13:58 +01:00
Florian Bruhin
77949c8d33 Get rid of continue 2014-11-06 06:46:21 +01:00
Florian Bruhin
cb24ec58cc Use yield 2014-11-06 06:44:23 +01:00
Florian Bruhin
9591e86054 cleanup state=None 2014-11-05 23:48:57 +01:00
Florian Bruhin
e6f4ac9b99 cleanup 2014-11-05 23:47:48 +01:00
Florian Bruhin
40a1c4a2d9 Remove newline test 2014-11-05 21:44:52 +01:00
Florian Bruhin
1d9b60d733 Fix some tests 2014-11-05 21:42:27 +01:00
Florian Bruhin
ac355b1c7c Use vdebug level. 2014-11-05 07:42:21 +01:00
Florian Bruhin
22da17bbca Add a keep-mode to shlexer. 2014-11-05 07:41:17 +01:00
Florian Bruhin
82e95d82d1 cleanup 2014-11-04 21:06:43 +01:00
Florian Bruhin
84916448a9 Use iterator to read chars 2014-11-04 20:41:29 +01:00
Florian Bruhin
409eba76ca Handle safe parsing directly in ShellLexer 2014-11-04 20:24:42 +01:00
Florian Bruhin
95f7940996 Get rid of _get_lexer. 2014-11-04 20:13:38 +01:00
Florian Bruhin
430ef5c935 Whitespace cleanup 2014-11-04 20:13:31 +01:00
Florian Bruhin
89a2057cac Simplify eof handling 2014-11-04 20:09:45 +01:00
Florian Bruhin
cfafc2e235 Get rid of get_token 2014-11-04 20:08:14 +01:00
Florian Bruhin
9a5df13639 Use logging for debug 2014-11-04 20:06:58 +01:00
Florian Bruhin
cb76a100c2 Assume whitespace_split=True, get rid of wordchars/pushback 2014-11-03 21:48:10 +01:00
Florian Bruhin
9180a8b0bb shlex: Some lint cleanup 2014-11-03 21:43:34 +01:00
Florian Bruhin
b8d9f3b041 shlex: Remove lineno/commenters 2014-11-03 21:37:36 +01:00
Florian Bruhin
861705f655 shlex: Assume posix=True 2014-11-03 21:35:47 +01:00
Florian Bruhin
cab18c248c shlex: Remove unneeded stuff 2014-11-03 21:30:39 +01:00
Florian Bruhin
3fa8efc34b Initial shlex fork 2014-11-03 21:27:07 +01:00
Florian Bruhin
f705194c00 Fix an exception related to handling IPC connections.
See http://paste.the-compiler.org/view/77f58b69
2014-11-02 21:53:12 +01:00
Florian Bruhin
8e713abadf Add some logging for #232 2014-11-02 20:30:00 +01:00
Florian Bruhin
6e4759b65a Better paste metainfo 2014-10-31 07:57:50 +01:00
Florian Bruhin
e639cdb117 Remove unused imports. 2014-10-26 22:08:59 +01:00
Florian Bruhin
2269d9a64b Split getting of completion model into multiple functions. 2014-10-26 22:08:36 +01:00
Florian Bruhin
6f3fde4450 Don't trigger completion update twice.
Fixes #206.
2014-10-21 16:45:04 +02:00
Florian Bruhin
7eba55459b Fix completion with flags.
Fixes #203.
2014-10-20 20:39:25 +02:00
Florian Bruhin
fd6e56d7af Convert all function annotations to dicts. 2014-10-20 17:20:39 +02:00
Florian Bruhin
0a5cee6ea2 Simplify text marking in completion.
Also improves performance, see #190.
2014-10-20 07:43:07 +02:00
Claude
ed51367bdd selfish parameters 2014-10-19 23:01:06 +02:00
Claude
ecbe5c071d match urls with open, names with quickmark-load 2014-10-19 22:25:21 +02:00
Claude
572a9857ec fixes 2014-10-18 22:00:28 +02:00
Claude
afe45f9970 puschschsch 2014-10-18 16:42:06 +02:00
Claude
36328a01a4 updating code
according to https://github.com/The-Compiler/qutebrowser/pull/189#issuecomment-59220531
2014-10-17 21:39:28 +02:00
Claude
9613cc0eab Merge remote-tracking branch 'florian/master' into quickmark-completion 2014-10-17 20:46:00 +02:00
Florian Bruhin
dc8f156c21 Make srcmodel public in CompletionFilterModel. 2014-10-15 20:43:20 +02:00
Florian Bruhin
b54151f206 Use last focused window for download errors and other stuff.
When the event happens, it's possible we don't have any window focused yet, so
we display it in the window which was last focused.

Fixes #191.
2014-10-15 20:42:40 +02:00
Florian Bruhin
e8fa8fadce Fix completion tabbing.
I accidentally broke this in fb3682f5fa because
the variable gets reset before the slot is executed now.

See #189.
2014-10-15 13:00:56 +02:00
Claude
621388e5e0 init quickmark completion in init_static 2014-10-15 12:08:37 +02:00
Claude
777e93bd3f quickmarks completion
It works, but:
* terrible performance (5s for ~1600 marks)
* split and join operations in the loop - i want direct access to name +
  url in the marks dict! how?
2014-10-15 11:54:10 +02:00
Florian Bruhin
fb3682f5fa Load completion with a singleShot QTimer.
It still slows stuff down while typing, but at least it's a lot more responsive
for the initial load.

See #189.
2014-10-15 07:15:59 +02:00
Florian Bruhin
a8808aa3d4 Keep a reference to completion source model.
For some reason calling sourceModel() takes quite some time, which accounts for
about 1-2s of delay when showing the completion.

This matters for #189 for example.
2014-10-15 07:06:39 +02:00
Florian Bruhin
cf6d303ad1 Improve crash log handling because of single-instance. 2014-10-14 20:47:06 +02:00
Florian Bruhin
ef8873040a Add docstrings to signal debugging. 2014-10-14 07:59:07 +02:00
Florian Bruhin
bcf8040041 Whitespace fixes. 2014-10-14 07:58:50 +02:00
Florian Bruhin
0e9177eb4f Rename ipc param to process_args to via_ipc.
This prevents shadowing of the module.
2014-10-14 07:57:42 +02:00
Florian Bruhin
ca85dde71f Merge branch 'ipc' 2014-10-13 23:19:04 +02:00
Florian Bruhin
191b1dd240 Open new window for IPC args. 2014-10-13 23:14:24 +02:00
Florian Bruhin
19be96b4a8 Better invalid data logging 2014-10-13 22:51:11 +02:00
Florian Bruhin
f9c2eb836f Adjust docstring 2014-10-13 22:48:37 +02:00
Florian Bruhin
6b07fd969a Add timeout to IPC server. 2014-10-13 22:47:32 +02:00
Florian Bruhin
4617aee317 Log all socket errors 2014-10-13 22:38:40 +02:00
Florian Bruhin
103ba3b8b0 Don't log PeerDisconnectedError. 2014-10-13 22:36:05 +02:00
Florian Bruhin
bdb7cc96b4 Handle multiple connections properly #2. 2014-10-13 22:35:10 +02:00
Florian Bruhin
de41dee0b5 Add ipc logging 2014-10-13 21:38:28 +02:00
Florian Bruhin
879cdf8904 Ignore invalid UTF-8 data. 2014-10-13 21:17:49 +02:00
Florian Bruhin
7d492d7556 Ignore invalid json data. 2014-10-13 21:16:38 +02:00
Florian Bruhin
c42fc53980 Handle multiple connections properly. 2014-10-13 21:12:15 +02:00
Florian Bruhin
9e2e684124 Whitespace 2014-10-13 20:38:40 +02:00
Florian Bruhin
795a6937ac Add missing @pyqtSlot decorators. 2014-10-13 20:37:09 +02:00
Florian Bruhin
5bc4f85dc5 Fix QLocalServer error checking. 2014-10-13 20:37:00 +02:00
Florian Bruhin
a849901693 Shut down IPC cleanly on exit. 2014-10-13 20:36:23 +02:00
Florian Bruhin
6dc0bfa2d2 Convert IPCServer to a class and handle connections async. 2014-10-13 20:11:13 +02:00
Florian Bruhin
a3ee504c59 Add docstrings. 2014-10-13 07:59:03 +02:00
Florian Bruhin
93dd3d8d9d Fix check for QLocalSocket.UnknownSocketError 2014-10-13 07:49:26 +02:00
Florian Bruhin
8195f1875e Ignore QLocalSocket.ServerNotFoundError while connecting. 2014-10-13 07:49:01 +02:00
Florian Bruhin
2f0bbab635 Better IPC exceptions 2014-10-13 07:47:05 +02:00
Florian Bruhin
d861645d37 Remove wrong 'self' argument. 2014-10-13 07:43:22 +02:00
Florian Bruhin
5fc3332b6b Check errors correctly when connecting to socket. 2014-10-13 07:43:12 +02:00
Florian Bruhin
94b9bd42af Add missing "return True" when connected. 2014-10-13 07:42:15 +02:00
Florian Bruhin
f759106a14 Error handling when writing to running instance. 2014-10-13 07:34:15 +02:00
Florian Bruhin
451a8be748 Small cleanup. 2014-10-13 07:31:56 +02:00
Florian Bruhin
4958da9c70 Error checking on connection. 2014-10-13 07:31:48 +02:00
Florian Bruhin
869fd4f752 Add an IPCError exception. 2014-10-13 07:11:45 +02:00
Florian Bruhin
ae61ca8af9 whitespace 2014-10-13 07:09:25 +02:00
Florian Bruhin
e351217740 Wait until socket bytes are written. 2014-10-13 07:09:16 +02:00
Florian Bruhin
fdb24ff597 Move IPC to its own file. 2014-10-13 07:06:57 +02:00
Florian Bruhin
27fe73e1b8 Add debug function to log signals. 2014-10-11 11:40:15 +02:00
Florian Bruhin
1761d98c1b Fix lint 2014-10-10 07:50:50 +02:00
Florian Bruhin
b42d701b0c debug-console: Only create when needed 2014-10-10 07:45:44 +02:00
Florian Bruhin
0e771db7f1 Use annotation instead of special argument names.
Explicit is better than implicit.

Fixes #161.
2014-10-09 06:33:24 +02:00
Florian Bruhin
33043f0f6c Fix lint 2014-10-08 22:20:38 +02:00
Florian Bruhin
71308b45ac Add utils.qualname. Closes #169. 2014-10-08 21:11:04 +02:00
Florian Bruhin
7956f2b8e2 Clean up :later timers correctly on exceptions. 2014-10-08 07:52:49 +02:00
Florian Bruhin
50f7067d6c Add a :repeat command. 2014-10-08 07:46:21 +02:00
Florian Bruhin
704df6f619 Fix docstring. 2014-10-08 07:16:27 +02:00
Florian Bruhin
04b5c0e781 Add CACHEDIR.TAG to cache. Closes #19. 2014-10-08 07:16:00 +02:00
Florian Bruhin
ef0c72a99e Create standard dirs correctly. Fixes #20. 2014-10-08 07:11:25 +02:00
Florian Bruhin
b49b227c0d Add an init method for standarddir.
This is another preparation for #19 and #20.
2014-10-08 06:43:00 +02:00
Florian Bruhin
0e7a60abf6 Move utils.get_standard_dir to its own file.
This is a preparation for #19 and #20 because there are too many functions
related to standarddir in utils.
2014-10-08 06:20:31 +02:00
Florian Bruhin
6349a6a213 Remove Emit:/Raise: from docstrings.
They got out-of-sync fast and provided no real benefit.
2014-10-07 23:08:37 +02:00
Florian Bruhin
f3ad1b71e6 Clean up objreg log text. This confused me in #159. 2014-10-07 22:21:51 +02:00
Florian Bruhin
15a2be877a Pass win_id correctly with invalid_url_error. 2014-10-06 22:22:59 +02:00
Florian Bruhin
105c25bc5f Merge branch 'multiwin'
Conflicts:
	qutebrowser/app.py
	qutebrowser/browser/commands.py
	qutebrowser/browser/hints.py
	qutebrowser/keyinput/modeman.py
	qutebrowser/network/networkmanager.py
	qutebrowser/widgets/mainwindow.py
	qutebrowser/widgets/statusbar/command.py
	qutebrowser/widgets/statusbar/prompt.py
	qutebrowser/widgets/statusbar/prompter.py
	qutebrowser/widgets/tabbedbrowser.py
2014-10-06 22:03:58 +02:00
Florian Bruhin
9281fa3992 Fix lint/bugs 2014-10-06 19:53:50 +02:00
Florian Bruhin
6324751af6 More window support. 2014-10-06 17:58:40 +02:00
Florian Bruhin
7e209dc285 Print tab registries in :debug-all-objects. 2014-10-06 07:41:34 +02:00
Florian Bruhin
d8cd599096 Fix wrong 'is' check. 2014-10-06 07:41:26 +02:00
Florian Bruhin
85ead4273b Register tab registry under window registry with ID. 2014-10-06 07:41:05 +02:00
Florian Bruhin
d3121034df Revert "Store window registries in objreg."
This reverts commit dfd3b3d9c4.

It turns out this makes it very hard to remove the window from the window
registry at the right time.
2014-10-05 23:09:35 +02:00
Florian Bruhin
d260b26105 Fix objreg._get_window_registry when non-mainwindow window is focused. 2014-10-05 22:41:44 +02:00
Florian Bruhin
dfd3b3d9c4 Store window registries in objreg. 2014-10-05 22:17:29 +02:00
Florian Bruhin
b6393a1841 Get rid of meta registry 2014-10-05 21:50:14 +02:00
Florian Bruhin
4dcaa1fdec Be more forgiving when validating URLs. Fixes #141. 2014-10-03 16:58:30 +02:00
Florian Bruhin
a8304d03ea Clean up get_standard_dir 2014-10-02 22:24:08 +02:00
Florian Bruhin
e74fa71a0a Seprate data/config dirs on Windows.
See #21.
2014-10-02 22:12:45 +02:00
Florian Bruhin
3a66937205 Clean up argument handling in get_standard_dir 2014-10-02 22:12:24 +02:00
Florian Bruhin
b20536d472 Move handling of --confdir into get_standard_dir 2014-10-02 21:54:42 +02:00
Florian Bruhin
d674b90240 Clean up FIXMEs and add github URLs 2014-10-01 22:23:27 +02:00
Florian Bruhin
6aeecb3803 Fix lints/bugs 2014-09-29 20:36:53 +02:00
Florian Bruhin
42a1d7028d Move :later back from commands to utilcmds. 2014-09-29 19:56:25 +02:00
Florian Bruhin
e6fe358d73 Clean up correctly when a window is closed. 2014-09-29 10:43:06 +02:00
Florian Bruhin
26604a683b Fix lint 2014-09-29 07:47:32 +02:00
Florian Bruhin
75ba75a0d7 Check arguments against None in objreg. 2014-09-29 07:17:11 +02:00
Florian Bruhin
9533312e0d Fix event filter when a non-Mainwindow dialog has an event. 2014-09-28 22:53:24 +02:00
Florian Bruhin
dc7b32e460 Fix lint 2014-09-28 22:23:37 +02:00
Florian Bruhin
fb6cb62f93 First attempt at multi-window support. 2014-09-28 22:13:14 +02:00
Florian Bruhin
64a119afb2 Don't use signals for on_config_changed. 2014-09-28 11:27:52 +02:00
Florian Bruhin
65d1d21d2e Always use a list for namedtuple. 2014-09-28 00:43:08 +02:00
Florian Bruhin
0fadf6b091 Use a list as items-argument for usertypes.enum 2014-09-28 00:42:53 +02:00
Florian Bruhin
c9d5928dce Fix lint 2014-09-27 23:21:13 +02:00
Florian Bruhin
4410536f69 Refactor :undo and save/restore history. 2014-09-27 22:56:50 +02:00
Florian Bruhin
4e42ff1304 Move tab_id_gen and add tab_id to webview repr. 2014-09-26 16:44:41 +02:00
Florian Bruhin
36fd2e5c7f Improve __repr__ methods. 2014-09-26 15:48:24 +02:00
Florian Bruhin
1960cfe114 Really fix keyevent_to_string. 2014-09-26 07:31:59 +02:00
Florian Bruhin
99da7b697b Fix lint on OS X 2014-09-26 07:12:08 +02:00
Florian Bruhin
cdb33a04cc Fix Ctrl-key on OS X 2014-09-25 22:46:25 +02:00
Florian Bruhin
2ebb0063be Really fix version info on OS X 2014-09-25 22:46:25 +02:00
Florian Bruhin
66d36442d7 Fix version info on OS X 2014-09-25 21:33:03 +02:00
Florian Bruhin
55e2ccabf5 Fix lint 2014-09-25 07:58:08 +02:00
Florian Bruhin
143fdc5b9f Register tab registry in meta registry. 2014-09-25 07:50:07 +02:00
Florian Bruhin
1e7861660e Add 'meta' scope to objreg. 2014-09-25 07:49:46 +02:00
Florian Bruhin
e8ce45c440 Add a tab-scope object registry. 2014-09-25 07:49:45 +02:00
Florian Bruhin
4067b584ec Add a registry argument to objreg.register. 2014-09-25 07:43:14 +02:00
Florian Bruhin
c77057e88e Add a scope parameter to objreg functions. 2014-09-25 00:30:52 +02:00
Florian Bruhin
027e7e054e Remove obsolete EnumBase usertype. 2014-09-24 22:25:11 +02:00
Florian Bruhin
05ff908c4f Update attributes in docstrings. 2014-09-24 22:25:11 +02:00
Florian Bruhin
f2b46dc2e9 Remove srcmodel attribute from completionfilter. 2014-09-24 22:25:11 +02:00
Florian Bruhin
62e55499eb Privatize all attributes which aren't needed from the outside. 2014-09-24 22:25:11 +02:00
Florian Bruhin
6a5c9ba138 Use object registry for CompletionView. 2014-09-24 22:25:10 +02:00
Florian Bruhin
387622623d Detach meta object registry from application. 2014-09-24 07:27:32 +02:00
Florian Bruhin
b0a9ecf094 Detach object registry from application. 2014-09-24 07:13:53 +02:00
Florian Bruhin
3c2e584c2a Make pylint shut up with _UNSET object. 2014-09-24 07:07:31 +02:00
Florian Bruhin
3f02451828 Move object registry to its own file. 2014-09-24 07:06:45 +02:00
Florian Bruhin
6090bf418d Add utils.delete_object() 2014-09-24 06:41:39 +02:00
Florian Bruhin
d32d6c9b28 Allow a default value for utils.get_object. 2014-09-24 06:41:22 +02:00
Florian Bruhin
a2d3ca6565 Make it possible to update an object in the object registry. 2014-09-24 06:25:08 +02:00
Florian Bruhin
908a69af18 Better __repr__s 2014-09-23 23:31:17 +02:00
Florian Bruhin
9aa65a2341 Fix lint and bugs 2014-09-23 23:17:36 +02:00
Florian Bruhin
2b60cdb64c Object names cleanup 2014-09-23 23:05:55 +02:00
Florian Bruhin
fe5d9939b9 Move debug console from app to utilcmd 2014-09-23 22:31:26 +02:00