Commit Graph

1115 Commits

Author SHA1 Message Date
Florian Bruhin
c5b75b0b16 Merge remote-tracking branch 'origin/usertypes-tests' 2015-07-06 17:58:13 +02:00
Florian Bruhin
3f13c2bd3e Add/improve tests for qutebrowser.utils.urlutils. 2015-07-06 17:10:57 +02:00
Florian Bruhin
e3fcc0e091 Move isabs check to top in fuzzy_url. 2015-07-06 17:10:24 +02:00
Florian Bruhin
4e0d00098c Improve NeighborList tests. 2015-07-02 21:10:56 +02:00
Florian Bruhin
7b8490b6c0 Fix 'an user' spelling. 2015-06-29 17:49:19 +02:00
Martin Tournoij
a346644c71 Changed:
- same_domain: If the tld is unknown, only return True if the hostnames are the same
- Fix when starting without an open page
2015-06-27 21:15:54 +02:00
Martin Tournoij
f806eefba6 Merge branch 'master' into referer-header 2015-06-27 20:43:54 +02:00
Florian Bruhin
e9b5c355d2 Add a short=True argument to version.version().
Fixes #787.
2015-06-26 22:33:29 +02:00
Florian Bruhin
75b894a186 Include DESKTOP_SESSION in qute:version. 2015-06-24 20:54:37 +02:00
Florian Bruhin
220ac021f0 Print style name in version info. 2015-06-24 20:37:48 +02:00
Florian Bruhin
9ca06ecfa2 Use pkg_resources instead of distutils for version
Fixes #767. See #770.
2015-06-18 20:54:05 +02:00
Florian Bruhin
b1334bcc22 Use repr() for unknown objects in utils.qualname. 2015-06-17 06:46:03 +02:00
Florian Bruhin
70699988ed Fix context managers behavior on exceptions. 2015-06-15 06:19:14 +02:00
Florian Bruhin
f17131f6c2 Change Qt links to point to qt.io. 2015-06-12 16:59:33 +02:00
Florian Bruhin
84a269f36a Add missing keys to key_to_string. 2015-06-12 16:37:17 +02:00
Florian Bruhin
425fcdf8e4 Merge branch 'util-tests-1' 2015-06-12 11:50:57 +02:00
Florian Bruhin
163bc2e12e Add GUIProcess.
This aims to unify the code which spawns a process and then shows statusbar
notifications when it exited, etc.
2015-06-11 20:30:03 +02:00
Florian Bruhin
17bb9fc21c Use QProcess instead of subprocess.
Closes #646.
Fixes #688.
2015-06-11 20:28:04 +02:00
Florian Bruhin
67e895b6c7 Hide SetProcessDpiAwareness Qt warning.
This shows up on AppVeyor CI for some reason.
See https://bugreports.qt.io/browse/QTBUG-38993
2015-06-10 18:35:33 +02:00
Florian Bruhin
e60f698615 Add/improve tests for qutebrowser.utils.standarddir. 2015-06-07 23:20:34 +02:00
Florian Bruhin
df53ccf426 Write tests for qutebrowser.utils.version. 2015-06-07 23:20:34 +02:00
Florian Bruhin
4204579c06 Add/improve tests for qutebrowser.utils.utils. 2015-06-07 22:53:30 +02:00
Antoni Boucher
cf4b89efe3 Merge remote-tracking branch 'upstream/master' 2015-06-07 14:38:17 -04:00
Florian Bruhin
a82b0d007d Enforce a Qt with SSL support. 2015-06-07 10:47:28 +02:00
Florian Bruhin
def41e70bf Fix some spelling mistakes. 2015-06-07 01:24:02 +02:00
Martin Tournoij
463e85ff5d Add referer-header setting, #712 2015-06-05 18:00:21 +02:00
Florian Bruhin
9ec6e6da80 Fix exit status codes to be 0-based. 2015-06-04 15:13:20 +02:00
Florian Bruhin
f1c0781a4c Use sip.SIP_VERSION_STR to get sip version. 2015-06-01 09:09:10 +02:00
Antoni Boucher
1698c60124 Merge remote-tracking branch 'upstream/master' 2015-05-31 15:59:46 -04:00
Florian Bruhin
81345eb17e Hide some QXcbWindow warnings. 2015-05-31 00:11:33 +02:00
Florian Bruhin
6452c8f883 PyQIODevice: Add context manager support. 2015-05-26 20:57:11 +02:00
Florian Bruhin
b8dd71a343 PyQIODevice: Add .open()/.close(). 2015-05-26 20:57:11 +02:00
Florian Bruhin
460308f388 PyQIODevice: Don't use errorString for failed seek. 2015-05-26 20:57:11 +02:00
Florian Bruhin
6a26bc23ab PyQIODevice: Remove unneeded check. 2015-05-26 20:57:11 +02:00
Florian Bruhin
48de8b145b PyQIODevice: Properly fix read/readLine. 2015-05-26 20:57:01 +02:00
Florian Bruhin
0788054dd3 PyQIODevice: Expose underlying device. 2015-05-26 20:57:01 +02:00
Florian Bruhin
b2d763f993 PyQIODevice: Check if device is readable/writable. 2015-05-26 20:57:01 +02:00
Florian Bruhin
35f0b26f4a PyQIODevice: Remove readinto().
Our implementation was broken, and the BufferedIOBase mixin does a better job
at doing this.
2015-05-26 20:57:01 +02:00
Florian Bruhin
ba9c782824 PyQIODevice: First attempt at fixing read().
This was completely broken because one read overload doesn't exist in PyQt and
apparently it was never tested...
2015-05-26 20:56:51 +02:00
Florian Bruhin
fa69786b0f PyQIODevice: Raise ValueError when closed. 2015-05-26 20:49:58 +02:00
Florian Bruhin
e10da78a1a urlutils: Remove some more dead code. 2015-05-26 20:49:43 +02:00
Florian Bruhin
27e82ce6c8 Improve exception handling in qsavefile_open.
Sometimes exceptions were shadowed with new exceptions because of the file
flushing.
2015-05-26 19:25:05 +02:00
Florian Bruhin
120d2e12b0 Improve QtValueError wording for ensure_not_null. 2015-05-25 01:21:57 +02:00
Antoni Boucher
ece32e930c Added bookmarks command. 2015-05-24 19:18:40 -04:00
Florian Bruhin
8d15bbdded utils.version: Add SIP line on ImportError. 2015-05-24 21:00:46 +02:00
Antoni Boucher
2c0c2e220e Fixed style issue. 2015-05-21 19:38:30 -04:00
Antoni Boucher
28caf45707 First version of bookmarks. 2015-05-21 18:17:22 -04:00
Florian Bruhin
aaab05793e urlutils: Handle localhost correctly in all cases. 2015-05-20 13:36:40 +02:00
Florian Bruhin
ddb6743b26 urlutils: Clean up qurl_from_user_input in is_url. 2015-05-20 13:36:40 +02:00
Florian Bruhin
269676318b urlutils: Raise exception on errors in host_tuple. 2015-05-20 13:36:40 +02:00
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