Commit Graph

947 Commits

Author SHA1 Message Date
Florian Bruhin
19afa69d87 view_source: Add line numbers. 2014-09-15 18:19:56 +02:00
Florian Bruhin
175d25b3c4 Merge branch 'master' of ssh://cmpl.cc:2323/qutebrowser 2014-09-15 18:01:20 +02:00
Florian Bruhin
715aec991e Add view_source command. 2014-09-15 17:59:54 +02:00
Florian Bruhin
81aa08593b hints: Ignore invalid href's instead of crashing. 2014-09-15 06:54:05 +02:00
Florian Bruhin
ad2435fa0b hints: Small cleanup 2014-09-15 06:53:05 +02:00
Florian Bruhin
00193df99e hints: Fix URL resolving crash with new WebElement API. 2014-09-15 06:52:34 +02:00
Florian Bruhin
4d3b3616a6 Fix lint 2014-09-14 23:56:19 +02:00
Florian Bruhin
b9216bca15 Fix hint command arguments. 2014-09-14 23:16:35 +02:00
Florian Bruhin
1fd8fb57a6 Use *args for commands where possible. 2014-09-14 23:10:51 +02:00
Florian Bruhin
b2058e2f0e cmdutils: Default to nargs='+' for *args. 2014-09-14 22:56:02 +02:00
Florian Bruhin
3391896037 Disable workaround for PyQt 5.3.2 2014-09-14 21:12:03 +02:00
Florian Bruhin
38c341e3ea Add count info in commands. 2014-09-13 00:33:54 +02:00
Florian Bruhin
80ef0782d5 Improve some docstrings. 2014-09-13 00:22:27 +02:00
Florian Bruhin
070d5ae300 Add more documentation. 2014-09-08 12:21:47 +02:00
Florian Bruhin
1220f0c5fd Move webelem from utils to browser. 2014-09-08 10:30:05 +02:00
Florian Bruhin
381b06e967 Fix lint 2014-09-08 07:44:32 +02:00
Florian Bruhin
5e6150e665 Add a :help command. 2014-09-08 07:36:18 +02:00
Florian Bruhin
4cf7e6e767 Add docstring for :quickmark-load. 2014-09-08 07:36:17 +02:00
Florian Bruhin
0a094c6e58 Refactor HintManager.start 2014-09-08 07:36:17 +02:00
Florian Bruhin
57d51ad9bb Lots of fixes for new command system.
Squashed commit:

- Fix getting current URL
- Get rid of *args for hints.
- Make enums work.
- Fix moving commands to utilcmds.
- Fix enums in argparse
- Fix arg splitting for hints.
- Fix default enum args.
- Fix argument splitting for hints if None is given.
- Fix set_cmd_text with flags and fix {url}.
- Fix unittests
- Fix tuple types for arguments.
- Fix scroll-page.
- Fix lint
- Fix open_target.
- Others
2014-09-08 07:36:17 +02:00
Florian Bruhin
a811f8cb07 Start initial newcmd stuff. 2014-09-08 07:36:17 +02:00
Florian Bruhin
b856bf3a47 Improve webelement API 2014-09-04 20:30:59 +02:00
Florian Bruhin
b789d14513 Improve prev-page/next-page matching and logging. 2014-09-03 22:55:48 +02:00
Florian Bruhin
71796e9528 Fix statusbar text when entering insert mode via hints.
Before, hints cleaned the statusbar text delayed, clearing the "==== INSERT
MODE ====" in the statusbar.

Now we only reset the text if it wasn't changed.
2014-09-03 11:51:24 +02:00
Florian Bruhin
3e904f4c52 Fix crash when using commands on startup which need a widget. 2014-09-03 11:32:56 +02:00
Florian Bruhin
ccfc0b3c19 Get rid of most @property's.
They were problematic because they're executing hidden code, and also PyQt
hides exceptions happening inside them.
2014-09-02 23:37:47 +02:00
Florian Bruhin
4caec2becb Document and mark workarounds. 2014-09-02 20:44:58 +02:00
Florian Bruhin
428d70c746 Add a network disk cache. 2014-09-01 19:42:21 +02:00
Florian Bruhin
6d97da7bcc browser.downloads: Download with default name if path is given. 2014-09-01 17:51:49 +02:00
Florian Bruhin
0a646b110b Store cookies in binary format.
We saved/opened cookies as UTF-8 which lead to an exception on saving with a
cookie with an ä in it.

ISO-8859-1 would be more appropriate, but we trust Qt to make the right choice
and don't re-encode anything now.
2014-09-01 16:22:01 +02:00
Florian Bruhin
c9ea83ca7b Fix lint 2014-08-29 06:14:52 +02:00
Florian Bruhin
bf515a4104 Adjust import 2014-08-28 22:11:30 +02:00
Florian Bruhin
d6b1b7be3a Handle exceptions in QWebPage::extension differently. 2014-08-28 22:11:10 +02:00
Florian Bruhin
a6ae129595 Use jinja for error page. 2014-08-28 20:14:40 +02:00
Florian Bruhin
5176dac391 Raise exceptions in QWebPage::extensions properly. 2014-08-28 20:14:24 +02:00
Florian Bruhin
ce4a5affa4 Rename commands.utils to commands.cmdutils. 2014-08-26 20:48:39 +02:00
Florian Bruhin
c72bfff306 Rename commands.exceptions to commands.cmdexc. 2014-08-26 20:38:10 +02:00
Florian Bruhin
5adf48ed3d Rename utils.url to utils.urlutils. 2014-08-26 20:33:41 +02:00
Florian Bruhin
8bd64382bd Rename utils.qt to utils.qtutils. 2014-08-26 20:25:11 +02:00
Florian Bruhin
d9a8cbe7ad Rename utils.misc to utils.utils 2014-08-26 20:20:17 +02:00
Florian Bruhin
b4298c2922 Remove 'as logger' imports. 2014-08-26 20:15:41 +02:00
Florian Bruhin
e04b31eb90 Remove qt_ prefix from qtutils functions. 2014-08-26 19:23:06 +02:00
Florian Bruhin
d625cde28c Clean up imports 2014-08-26 19:10:14 +02:00
Florian Bruhin
f452b02b24 Turn off repainting while moving tabs.
Before we had some flashing because we're removing the tab, inserting the new
one, and then focusing the new one.
2014-08-25 15:41:19 +02:00
Florian Bruhin
743cc47229 Default to delta=1 for gl/gr. 2014-08-25 15:40:48 +02:00
Florian Bruhin
03cb9c353b Fix clipboard selection in :paste on windows. 2014-08-25 15:28:07 +02:00
Florian Bruhin
9585b3c925 Add some logging for content-disposition 2014-08-14 14:59:13 +02:00
Florian Bruhin
dd2ed78f40 Handle wrong image/jpg mimetype in unsupportedContent slot. 2014-08-12 21:08:13 +02:00
Florian Bruhin
be2604cacd Add a new qutebrowser.utils.http module 2014-08-12 07:00:04 +02:00
Florian Bruhin
c7ee655750 Use pylint to check modelines and fix them. 2014-08-06 23:51:44 +02:00
Florian Bruhin
13b6fe24eb Reorder tab stuff in config. 2014-08-06 08:10:32 +02:00
Florian Bruhin
1217ed26ad Handle tab position of explicitely opened tab differently.
The default behaviour now should be the same as Chromium.
2014-08-06 07:58:07 +02:00
Florian Bruhin
c94ff7b946 Fix import for get_standard_dir 2014-08-05 19:58:47 +02:00
Florian Bruhin
11f1c8f369 Don't default all directories to DownloadPath if empty 2014-08-05 18:02:12 +02:00
Florian Bruhin
ee1b136807 Clean up pylint/noqa comments. 2014-08-04 03:47:09 +02:00
Florian Bruhin
3dc7a1b735 Lock mode while prompting. 2014-08-04 03:14:14 +02:00
Florian Bruhin
90f1d5851c Fix lint. 2014-08-03 00:58:59 +02:00
Florian Bruhin
acfc95e19d Simplify :hint by adding a 'fill' target. 2014-08-03 00:56:42 +02:00
Florian Bruhin
40aa387fb2 Whitespace fixes 2014-08-03 00:40:28 +02:00
Florian Bruhin
b68f22541c Merge tab-focus-last into tab-focus. 2014-08-03 00:39:39 +02:00
Florian Bruhin
d302886b87 Fix too long lines. 2014-08-03 00:36:35 +02:00
Florian Bruhin
9e73cba333 Improve command documentation. 2014-08-03 00:33:39 +02:00
Florian Bruhin
6c4b21117c Fix typo 2014-08-02 23:58:52 +02:00
Florian Bruhin
3467dd77ac Document the :hint command. 2014-08-02 23:46:27 +02:00
Florian Bruhin
c1d9f70fd6 Make js alert/confirm messages a bit more clear. 2014-08-02 16:16:13 +02:00
Florian Bruhin
f19a1db120 Clean up tab shutdown. 2014-08-01 23:23:31 +02:00
Florian Bruhin
682a395936 Shut down tabs while quitting 2014-07-31 20:40:21 +02:00
Florian Bruhin
cf8a8ad3b4 Fix crash when closing tab then doing tab-focus-last. 2014-07-29 22:42:59 +02:00
Florian Bruhin
e1f9403876 Clean up hint command. 2014-07-29 02:24:04 +02:00
Florian Bruhin
425a7fd7c4 Simplify userscript running. 2014-07-29 02:05:15 +02:00
Florian Bruhin
b83dd59469 Add userscript/spawn targets to hints. 2014-07-29 01:45:42 +02:00
Florian Bruhin
54246bacbe Add some type checking for enums 2014-07-29 00:23:20 +02:00
Florian Bruhin
7c8f9bec0f Use enum for keyboard modes. 2014-07-29 00:19:35 +02:00
Florian Bruhin
860ef75abc Fix lint 2014-07-28 21:09:49 +02:00
Florian Bruhin
8d80ce2628 Switch to python 3.4 enums.
Our home-brewn enum wasn't really liked by pylint (many no-member errors), so
instead of adding some workaround, we just use the python 3.4 enum instead.

This however also means we need to depend on Python 3.4 and not 3.3. Maybe we
should use enum34 on Python < 3.3.
2014-07-28 20:41:42 +02:00
Florian Bruhin
d60ff5ed27 Add a set-cmd-text command. 2014-07-28 02:16:37 +02:00
Florian Bruhin
e0bd89b762 Add an {url} variable for commands.
Note this also means we don't support :spawn running in a shell anymore, as
{url} is evaluated earlier. However this should be fine, as there's no really
important use case for that anyways, and shell escaping on Windows is rather
unmaintainable.
2014-07-28 01:40:36 +02:00
Florian Bruhin
f7304298ab Separate docstrings into command/documentation parts. 2014-07-16 20:09:41 +02:00
Florian Bruhin
23baab1fc0 Merge branch 'master' of ssh://cmpl.cc:2323/qutebrowser
Conflicts:
	qutebrowser/utils/webelem.py
2014-07-16 11:09:13 +02:00
Florian Bruhin
98edd45fee Stop using self.sender() in signalfilter, connect signals to mainframe 2014-07-16 11:07:05 +02:00
Florian Bruhin
e250d42f0b Better debugging for editing 2014-07-16 09:28:28 +02:00
Florian Bruhin
1f3b39eb75 Get rid of prevnext_rel selector group 2014-07-16 09:17:59 +02:00
Florian Bruhin
958b114d29 Add stricter focus checking for editor 2014-07-16 08:46:52 +02:00
Florian Bruhin
810e507da9 Add a focus_elem function to utils.webelem. 2014-07-16 07:55:30 +02:00
Florian Bruhin
bbd9d24334 Handle elements with contenteditable correctly for editor 2014-07-16 07:42:02 +02:00
Florian Bruhin
d5c8e73b14 Use same focus code for insertmode/editor 2014-07-16 06:58:01 +02:00
Florian Bruhin
fad22c63d9 Go back to using one NetworkManager per tab 2014-07-10 06:42:52 +02:00
Florian Bruhin
781390828f Merge branch 'master' of ssh://lupin/qutebrowser 2014-07-09 21:14:32 +02:00
Florian Bruhin
72b854049b Improvments for hints/page-prev/page-next 2014-07-09 21:14:15 +02:00
Florian Bruhin
5feee871ac Fix lint 2014-07-07 12:00:51 +02:00
Florian Bruhin
f173583605 Documentation update for Qt 5.3.1 2014-07-04 14:37:31 +02:00
Florian Bruhin
c18027f3ae Override QWebPage::acceptNavigationRequest.
We now do this instead of using linkDelegationPolicy and the linkClicked signal
of QWebView, as we are unable to get the target frame with linkClicked, causing
frames to open full-page instead of where they should.

See https://bugs.webkit.org/show_bug.cgi?id=37847
2014-07-02 22:17:36 +02:00
Florian Bruhin
400f619903 Handle user variables in path correctly 2014-06-28 01:15:31 +02:00
Florian Bruhin
1a73a90515 Fix downloading with relative filepaths 2014-06-27 18:30:20 +02:00
Florian Bruhin
b79cdbc416 Clean up Question objects correctly 2014-06-27 07:56:16 +02:00
Florian Bruhin
e95ef9ab4a Don't log scrolling 2014-06-26 14:10:53 +02:00
Florian Bruhin
46d621629f Fix download/question crashes 2014-06-26 13:36:00 +02:00
Florian Bruhin
92ff957543 Clean up message API 2014-06-26 07:58:00 +02:00
Florian Bruhin
7073d14cb8 Handle absolute paths for downloads better 2014-06-25 22:06:16 +02:00
Florian Bruhin
3c82724d10 Don't die on invalid quickmarks 2014-06-25 11:03:26 +02:00
Florian Bruhin
ab99669b4a Remove unused import 2014-06-25 10:03:13 +02:00
Florian Bruhin
c8cc92e8c2 Add basic HTML log 2014-06-25 10:00:27 +02:00
Florian Bruhin
411d57e539 Fix download-page 2014-06-25 10:00:09 +02:00
Florian Bruhin
9b4cc6ab76 Nicer downloads when size is unknown 2014-06-24 17:57:52 +02:00
Florian Bruhin
c7f2b45cbd Always yank to clipboard if primary selection is unavailable 2014-06-24 12:04:36 +02:00
Florian Bruhin
81990f792f Avoid using QApplication for downloads 2014-06-23 17:30:28 +02:00
Florian Bruhin
98a2e80b38 Fix quickmarks 2014-06-23 16:12:35 +02:00
Florian Bruhin
dc91bcdf91 Don't crash if URLs are invalid in commands 2014-06-23 14:26:47 +02:00
Florian Bruhin
f12d243f03 Clean up import 2014-06-23 12:17:13 +02:00
Florian Bruhin
e4b10af41a Move filename checking to utils.misc 2014-06-23 12:15:10 +02:00
Florian Bruhin
8a8ca0c34f Split utils.misc into utils.{qt,misc} 2014-06-23 07:45:04 +02:00
Florian Bruhin
5996651a2f Merge utils.signals into utils.debug 2014-06-23 07:11:15 +02:00
Florian Bruhin
bf9e829d4d Don't use .warn on loggers, use .warning instead. 2014-06-22 23:30:44 +02:00
Florian Bruhin
49fd08b30d Leave URLs encoded when setting commandline 2014-06-21 23:19:59 +02:00
Florian Bruhin
a64775a0f9 Improve logging messages 2014-06-21 22:40:31 +02:00
Florian Bruhin
664079c728 Don't raise CommandError in HintManager.fire 2014-06-21 17:41:25 +02:00
Florian Bruhin
7a6e2b3242 Ensure validity of Qt objects 2014-06-21 17:02:30 +02:00
Florian Bruhin
0dc2ecef46 Check QUrl objects for validity 2014-06-20 23:57:52 +02:00
Florian Bruhin
113221c731 Log some exceptions 2014-06-20 23:26:19 +02:00
Florian Bruhin
736f559afa Fix URL handling for quickmarks. 2014-06-20 22:57:32 +02:00
Florian Bruhin
2d2ee71bee Remove passwords from URLs going out via an insecure channel. 2014-06-20 22:57:04 +02:00
Florian Bruhin
d6fb0f7774 Fix crash when pasting an URL 2014-06-20 22:31:39 +02:00
Florian Bruhin
8b6af23b13 Make sure we don't display passwords in URLs to the user 2014-06-20 19:50:44 +02:00
Florian Bruhin
0fd64419da Remove urlutils.{urlstring,qurl}.
The idea of treating an URL-string and a QUrl as essentially the same data type
got us into all kinds of problems. Now we use QUrl everywhere except at the
borders to the user interface.
2014-06-20 16:33:01 +02:00
Florian Bruhin
3c9b4369cd Don't crash on Content-Disposition with wrong enc.
When declaring UTF-8 but encoding RFC2231 ISO-8859-1, rfc2259 raises an
UnicodeDecodeError.

Test case: http://greenbytes.de/tech/tc2231/#attwithfn2231iso-bad
2014-06-19 23:14:20 +02:00
Florian Bruhin
7690e918a2 Handle early download errors correctly 2014-06-19 21:37:22 +02:00
Florian Bruhin
0dfdd422a2 Prevent double-deleting file in downloads 2014-06-19 21:27:57 +02:00
Florian Bruhin
684154dd7d Remove set_trace 2014-06-19 21:26:01 +02:00
Florian Bruhin
2fd475b1a4 Fix downloading without content-disposition 2014-06-19 21:09:33 +02:00
Florian Bruhin
6ce5afccbe Use rfc6266 to handle Content-Disposition in downloads 2014-06-19 21:06:19 +02:00
Florian Bruhin
6b12572fb0 Add dwb download keybindings. 2014-06-19 17:58:46 +02:00
Florian Bruhin
c56c7c0394 Support cancelling a javascript confirm dialog 2014-06-19 12:21:22 +02:00
Florian Bruhin
d65587128f Add vim modelines to all files. 2014-06-19 09:04:37 +02:00
Florian Bruhin
b25b3c3786 Remove accidentally commited set_trace 2014-06-19 07:52:32 +02:00
Florian Bruhin
6e59b0ab3a Parse Content-Disposition header properly 2014-06-18 22:52:49 +02:00
Florian Bruhin
4a0e34fca7 Delete print dialogs on close 2014-06-17 14:33:15 +02:00
Florian Bruhin
2388874e82 Delete question if download as cancelled 2014-06-17 11:26:45 +02:00
Florian Bruhin
52bbabd91a Clean up downloads properly 2014-06-17 11:06:59 +02:00
Florian Bruhin
1fef2d02b9 Add an :all-objects command and __repr__s 2014-06-17 11:03:42 +02:00
Florian Bruhin
af9e4ae072 Fix parent/child relationships 2014-06-17 07:17:21 +02:00
Florian Bruhin
177e2945b6 Use currying instead of self.sender() where applicable 2014-06-16 22:49:22 +02:00
Florian Bruhin
7325cefdae Fix lint 2014-06-16 12:11:10 +02:00
Florian Bruhin
903de515e7 Add a check whether print works. 2014-06-16 10:21:03 +02:00
Florian Bruhin
43490202ca Add a qt_version_check function to utils.misc.
We're usually only interested in the runtime version, not in the compile-time
version, so we use this rather than comparing to QT_VERSION/PYQT_VERSION.
2014-06-16 10:20:05 +02:00
Florian Bruhin
d97823615a Auto-enable javaScriptPrompt at PyQt > 5.3.0 2014-06-16 08:52:47 +02:00
Florian Bruhin
f58e702589 Don't override javaScriptPrompt because of PyQt bugs 2014-06-14 23:31:39 +02:00
Florian Bruhin
9b42617c76 Fix lint 2014-06-13 23:09:24 +02:00
Florian Bruhin
5d6cb0e45d Clean up download value calculations 2014-06-13 22:51:16 +02:00
Florian Bruhin
85ee71b739 Add a rolling average of dl speed for time estimation 2014-06-13 21:53:06 +02:00
Florian Bruhin
d80c05b0b1 Decrease download speed refresh interval 2014-06-13 21:43:04 +02:00
Florian Bruhin
47c1908da2 Keep a reference to download path Question objects. 2014-06-13 20:18:16 +02:00
Florian Bruhin
fce591839b Abort filename prompt when download is cancelled. 2014-06-13 18:19:18 +02:00
Florian Bruhin
3e5e8e59c1 Add right-click menu to cancel download 2014-06-13 12:19:30 +02:00
Florian Bruhin
cd7d6b87f9 Format donwload string so it jumps less 2014-06-13 07:49:47 +02:00
Florian Bruhin
4dc33102b7 Cleanup 2014-06-13 07:41:51 +02:00
Florian Bruhin
efd83f40ca Print human readable sizes in downloads 2014-06-13 07:13:47 +02:00
Florian Bruhin
8c673ee66c Add basic download info to view 2014-06-12 23:29:34 +02:00
Florian Bruhin
2ffc9bb00a Add colors to DownloadView 2014-06-12 21:43:30 +02:00
Florian Bruhin
3c2c08f73a Add missing docstrings 2014-06-12 17:56:28 +02:00
Florian Bruhin
ad7856569f Handle download errors and handle everything async 2014-06-12 17:50:09 +02:00
Florian Bruhin
dc0b025055 Forward unsupported content properly 2014-06-12 13:17:45 +02:00
Florian Bruhin
db55865449 Add data_changed signal to downloadmanager. 2014-06-12 10:19:16 +02:00
Florian Bruhin
905eb9056d Fix speed calculation if downloadProgress hasn't been called yet. 2014-06-12 10:18:25 +02:00
Florian Bruhin
22a0639825 Connect readyRead signal properly 2014-06-12 10:18:02 +02:00
Florian Bruhin
a0d4429a32 Log download errors 2014-06-12 10:17:49 +02:00
Florian Bruhin
2114f0cd73 Start adding download model/view 2014-06-12 08:02:44 +02:00
Florian Bruhin
ace59e6f01 Fix speed calculation and do it more often 2014-06-11 22:40:28 +02:00
Florian Bruhin
35d35d31da Add some logging 2014-06-11 22:35:02 +02:00
Florian Bruhin
788302890f Add signals to DownloadItem 2014-06-11 22:33:40 +02:00
Florian Bruhin
c61289cedc Fix lint 2014-06-11 21:58:06 +02:00
Florian Bruhin
96891f6241 First working download draft 2014-06-11 21:55:23 +02:00
Florian Bruhin
80e2259df3 Add DownloadItem class 2014-06-11 17:27:39 +02:00
Florian Bruhin
7dd5b1b94e First debugging implementation of downloads 2014-06-10 22:11:17 +02:00
Florian Bruhin
71bc640131 Fix lint 2014-06-10 17:01:00 +02:00
Florian Bruhin
7315712359 Use statusbar to ask if long-running script should be interrupted. 2014-06-10 16:49:56 +02:00
Florian Bruhin
67f64b5e6a Support printing via javascript. 2014-06-10 16:49:44 +02:00
Florian Bruhin
57024f3174 Merge branch 'master' of ssh://cmpl.cc:2323/qutebrowser 2014-06-10 16:17:12 +02:00
Florian Bruhin
0e55f4d692 Implement file uploading 2014-06-10 16:16:42 +02:00
Florian Bruhin
2a2c21e0f7 Load webm videos correctly 2014-06-10 15:38:47 +02:00
Florian Bruhin
126a520674 Add some logging for error pages 2014-06-10 15:31:22 +02:00
Florian Bruhin
6a81710c71 Use HintContext per invocation of hintmanager 2014-06-07 18:07:09 +02:00
Florian Bruhin
2f1cd43f9c Change lists to tuples for immutable values 2014-06-06 17:21:35 +02:00
Florian Bruhin
fd220b1b36 Raise CommandError instead of message.error where possible 2014-06-06 11:55:55 +02:00
Florian Bruhin
af17746c20 Actually respect cookies-store 2014-06-03 20:30:50 +02:00
Florian Bruhin
35a3cc661e Reorder webkit options 2014-06-03 20:28:51 +02:00
Florian Bruhin
da2d8e1048 Log js console messages as debug, not info 2014-06-02 22:18:41 +02:00
Florian Bruhin
161b2ef7af Fix whitespace/CRLF 2014-05-27 16:24:26 +02:00
Florian Bruhin
1ff193e4dd Replace page_ by page() 2014-05-27 16:04:45 +02:00
Florian Bruhin
0976f95db7 Fix docstring 2014-05-27 15:56:44 +02:00
Florian Bruhin
53655dac02 Don't inherit CommandDispatcher from QObject 2014-05-27 15:12:43 +02:00
Florian Bruhin
4538745ffb Implement QWebPage:javaScript* 2014-05-26 20:04:44 +02:00
Florian Bruhin
fa01bfbbad Add per-tab inspector like dwb.
This also means the webinspector will always be detached / in its own window.
2014-05-26 15:35:05 +02:00
Florian Bruhin
8f12df6553 Purge old cookies from cookiejar 2014-05-26 16:09:49 +02:00
Florian Bruhin
1e256699f8 Add topic-specific loggers 2014-05-23 16:11:55 +02:00
Florian Bruhin
0c0cb48471 Fix lint 2014-05-22 15:44:16 +02:00
Florian Bruhin
7308fa97c5 Leave hinting mode when insert mode is entered 2014-05-22 17:49:18 +02:00
Florian Bruhin
8cddbec9e3 Implement quickmarks 2014-05-22 16:44:47 +02:00
Florian Bruhin
f3fd247282 Make LineConfigParser iterable. 2014-05-22 16:40:54 +02:00
Florian Bruhin
8d570b686c Initial userscript support 2014-05-21 19:53:58 +02:00
Florian Bruhin
ecc838d02c Fix ALL the lint 2014-05-21 17:29:09 +02:00
Florian Bruhin
2df8500792 Move ExternalEditor to own file 2014-05-21 15:47:21 +02:00
Florian Bruhin
60f25373e3 Merge branch 'editor'
Conflicts:
	qutebrowser/browser/commands.py
	qutebrowser/utils/misc.py
2014-05-21 15:37:18 +02:00
Florian Bruhin
407af1b02c Pass elem to on_editing_finished 2014-05-21 14:24:45 +02:00
Florian Bruhin
a77a25e6c1 Keep a hard reference to ExternalEditor 2014-05-21 14:22:46 +02:00
Florian Bruhin
ebefdfb5a9 Fix pasting in new tab 2014-05-19 15:09:12 +02:00
Florian Bruhin
633b87f61b Yank cleanup 2014-05-19 11:56:51 +02:00
Florian Bruhin
fe81e46f7c Small clipboard cleanup 2014-05-19 09:52:58 +02:00
Florian Bruhin
118d3e03cd Revert "Make scroll bars hideable"
This reverts commit 1bfbdd79e4.

Conflicts:
	qutebrowser/browser/commands.py
	qutebrowser/config/configdata.py
	qutebrowser/widgets/webview.py
2014-05-19 09:50:56 +02:00
Florian Bruhin
8ed373423a Fix undo 2014-05-18 08:19:27 +02:00
Florian Bruhin
869c0d82e1 Really fix tabclose 2014-05-18 08:18:20 +02:00
Florian Bruhin
d643d6ce44 Fix broken :yank 2014-05-18 08:14:11 +02:00
Florian Bruhin
578a58145c Fix tab closing 2014-05-18 08:08:58 +02:00
Florian Bruhin
1ec0766587 Rename CurCommandDispatcher to CommandDispatcher 2014-05-18 08:04:27 +02:00
Florian Bruhin
844e536fff Command cleanup 2014-05-17 23:22:10 +02:00
Florian Bruhin
c7cf0aaf9a Clean up webview and move commands 2014-05-17 22:38:07 +02:00
Florian Bruhin
d901fe69e6 Rename some commands 2014-05-16 23:01:40 +02:00
Florian Bruhin
19da80e58e Improve logging in signal filter 2014-05-16 21:49:35 +02:00
Florian Bruhin
1bfbdd79e4 Make scroll bars hideable 2014-05-16 14:20:37 +02:00
Florian Bruhin
d3eaeaac91 First steps at getting rid of signal cache 2014-05-15 17:57:08 +02:00
Florian Bruhin
326280f910 Fix consistency and spelling in docstrings/comments 2014-05-15 16:27:34 +02:00
Florian Bruhin
603fbdf239 Range-check all values passed to C code. 2014-05-15 00:02:20 +02:00
Florian Bruhin
cf02330b42 Make hinting work again.
6b2d2713f7 broke this as we accidentally
iterate over self._frames before setting it.
2014-05-14 18:54:34 +02:00
Florian Bruhin
a045511962 Use exceptions for command errors 2014-05-14 18:00:40 +02:00
Florian Bruhin
ed61244964 Make sure scroll count is int 2014-05-14 17:28:47 +02:00
Florian Bruhin
651eab1032 Return after error when there's no hint to follow 2014-05-14 14:56:13 +02:00
Florian Bruhin
6b2d2713f7 Clean up HintManager.start() 2014-05-13 21:13:53 +02:00
Florian Bruhin
0b3854bff1 Work around segfault in hintmanager 2014-05-13 13:42:30 +02:00
Florian Bruhin
d9bb1e904f Support back/forward mouse buttons 2014-05-13 09:53:29 +02:00
Florian Bruhin
7b2961f23e Fix some backslash-quotes 2014-05-12 15:58:09 +02:00
Florian Bruhin
fd43248d89 Remove needs_js for editor 2014-05-12 14:05:05 +02:00
Florian Bruhin
419caf7116 Rename rect_on_screen to rect_on_view 2014-05-12 10:05:00 +02:00
Florian Bruhin
50f31ca7cb Handle visibility of elements on screen correctly 2014-05-12 10:04:27 +02:00
Florian Bruhin
4eebe2dc57 First try at hinting with frames 2014-05-12 07:49:44 +02:00
Florian Bruhin
5a6208862e Add cmdutils.arg_or_count 2014-05-09 19:12:08 +02:00
Florian Bruhin
7966298a64 Don't pass parent to print dialogs. 2014-05-09 17:40:19 +02:00
Florian Bruhin
edc9d0810c Use QCoreApplication.instance() 2014-05-09 17:01:05 +02:00
Florian Bruhin
59a89d31fe Add reasons why modes are entered/left 2014-05-09 16:03:46 +02:00
Florian Bruhin
1785294a43 Fix some lint 2014-05-09 15:30:27 +02:00
Florian Bruhin
f7e6dc0244 Add zoom command. 2014-05-09 14:20:26 +02:00
Florian Bruhin
95f2950335 Add stop command (ctrl-s) 2014-05-09 13:11:47 +02:00
Florian Bruhin
05f38e15a6 Add command home 2014-05-09 13:09:37 +02:00
Florian Bruhin
70c8df095e Switch from appdirs to QStandardPaths 2014-05-08 22:33:24 +02:00
Florian Bruhin
4eb6f896b0 Remove unused import in hints.py 2014-05-08 20:36:23 +02:00
Florian Bruhin
e2a2ed8850 Support QWebView::createWindow (opening windows via js) 2014-05-08 20:36:05 +02:00
Florian Bruhin
14873285e6 Fix enum bugs 2014-05-06 21:09:09 +02:00
Florian Bruhin
164dcfb6bd Always click elements in the center when hinting 2014-05-06 21:07:20 +02:00
Florian Bruhin
557805c8b2 Don't pass an empty QPrinter to QPrintDialog.
This was garbage collected on Linux when the dialog was opened, leading
to segfaults when the printer was changed in the dialog.

But actually we don't need it at all, so we just drop it.
2014-05-06 18:31:08 +02:00
Florian Bruhin
e2ded2e0ad Add logging to handle_partial_key 2014-05-06 17:02:44 +02:00
Florian Bruhin
764c37c8d6 Hide elements instead of deleting them 2014-05-06 17:02:32 +02:00
Florian Bruhin
e683d85799 Add quick and dirty fix for hint clicking 2014-05-06 14:03:48 +02:00
Florian Bruhin
f6c3e00d59 Use NoneString config type for settings with Qt defaults.
This fixes wikipedia looking ugly because setUserStylesheet gets called
with an empty string.
2014-05-06 12:20:02 +02:00
Florian Bruhin
70d6efff96 Elements might be deleted already when hint mode is left 2014-05-06 10:04:40 +02:00
Florian Bruhin
e5000c315d Revert "Use global HintManager"
This reverts commit a76d68f564.

WTF. I thought I reset --hard-ed that one?
2014-05-06 07:11:20 +02:00
Florian Bruhin
3eaf1ec6d8 Remove old logging 2014-05-05 22:34:58 +02:00
Florian Bruhin
a76d68f564 Use global HintManager 2014-05-05 20:28:29 +02:00
Florian Bruhin
c8fd0937b0 Revert "Use global object dict for global objects"
This reverts commit bf2c7831c8.

This was a bad idea as we need to access some of the main attributes
from commands via instance=...
2014-05-05 20:12:20 +02:00
Florian Bruhin
bf2c7831c8 Use global object dict for global objects 2014-05-05 19:12:47 +02:00
Florian Bruhin
36e52721da Fix CRLFs in cookies.py 2014-05-05 17:56:35 +02:00
Florian Bruhin
667b255d01 Use QApplication for global singletons 2014-05-05 17:56:14 +02:00
Florian Bruhin
40720d3451 Whoops 2014-05-05 16:36:59 +02:00
Florian Bruhin
ae95b5ea3b Basic cookie handling 2014-05-05 16:28:43 +02:00
Florian Bruhin
3b75bbf495 Adjust shell_escape to maybe work on windows 2014-05-05 11:09:10 +02:00
Florian Bruhin
9cf713cbe4 Use a metaclass for Enums for easier reverse mapping 2014-05-05 10:08:06 +02:00
Florian Bruhin
4ebe643ea6 Use simple enums for constants 2014-05-05 07:45:36 +02:00
Florian Bruhin
ff37f03725 Explain why we use subprocess/QProcess. 2014-05-03 14:27:44 +02:00
Florian Bruhin
9e609bae8d Add :spawn command 2014-05-03 14:25:22 +02:00
Florian Bruhin
af68474fc3 Make sure frame is not None in HintManager.start 2014-05-02 18:57:59 +02:00
Florian Bruhin
efc613811f Implement numeric hints 2014-05-02 17:53:16 +02:00
Florian Bruhin
615a2e0bb5 Handle invalid hinting modes/targets 2014-05-02 11:25:24 +02:00
Florian Bruhin
ae0966a384 Fix encoding issues on windows.
locale.getpreferredencoding(False) returns cp1252 on Windows, which is
unable to parse our nice unicode arrows.

Therefore, we always need to specify the encoding when using open().

Also we exclude configdata.py from pep257 on Windows because it doesn't
detect the encoding correctly... Bug is submitted:
https://github.com/GreenSteam/pep257/issues/70
2014-05-02 11:15:38 +02:00
Florian Bruhin
be467d5e50 Refactor command argument splitting.
This uses split=True/False as cmdutils.register argument again (because
we would never want to set maxsplit ourselves, only not splitting the
*last* argument makes any sense.

Also this uses shlex for splitting again, like earlier.
2014-05-02 10:28:41 +02:00
Florian Bruhin
678abca244 Make user agent configurable 2014-05-02 06:55:55 +02:00
Florian Bruhin
7aef865b0d Lint fixes 2014-05-01 19:42:51 +02:00
Florian Bruhin
cb8f824f01 Add basurl 2014-05-01 16:40:14 +02:00
Florian Bruhin
5d80831752 prevpage/nextpage updates 2014-05-01 16:35:26 +02:00
Florian Bruhin
a3126635d4 Revert changes in _click 2014-05-01 15:29:18 +02:00
Florian Bruhin
fd678ff864 Make hints work 2014-05-01 15:27:32 +02:00
Florian Bruhin
12b36de5b5 Start implementing prev/next 2014-05-01 00:26:18 +02:00
Florian Bruhin
b9d7c7e7d9 Lint fixes 2014-05-01 00:24:53 +02:00
Florian Bruhin
545e63aa0e Bundle editor functions 2014-04-30 11:27:59 +02:00
Florian Bruhin
903d1876af Handle editor errors 2014-04-30 10:59:43 +02:00
Florian Bruhin
1488e54567 Fix docstrings 2014-04-30 10:46:20 +02:00
Florian Bruhin
689723508f Add broken JS checking for commands 2014-04-30 10:05:55 +02:00
Florian Bruhin
bc02df0bde Add open_editor command 2014-04-29 22:16:44 +02:00
Florian Bruhin
9fd7f8b975 Rewrite HintManager.fire to use handler dicts 2014-04-29 09:09:42 +02:00
Florian Bruhin
0d92e34310 Fix/silence checks 2014-04-28 00:05:14 +02:00
Florian Bruhin
a0f27fed61 Add manual hint following 2014-04-27 21:59:23 +02:00
Florian Bruhin
9252ef94ca Consistent string chars 2014-04-25 16:53:23 +02:00
Florian Bruhin
bc077f7503 Check if currentFrame() is None when starting hints 2014-04-25 13:21:14 +02:00
Florian Bruhin
875666265b s/BrowserTab/WebView/g 2014-04-25 12:24:26 +02:00
Florian Bruhin
6e78f67a81 Rename keyinput stuff 2014-04-25 12:21:01 +02:00
Florian Bruhin
926194849c Use normal commands for hint mode 2014-04-24 23:47:02 +02:00
Florian Bruhin
0def82fe8c Fix lint 2014-04-24 22:49:06 +02:00
Florian Bruhin
9320c813f7 Add set_cmd_text to MessageBridge 2014-04-24 21:28:24 +02:00
Florian Bruhin
c674d96cfe Reorganize input modules into keyinput subpackage 2014-04-24 21:03:45 +02:00
Florian Bruhin
ecdd887664 Split KeyParser into KeyParser (non-chain) and KeyChainParser 2014-04-24 19:21:38 +02:00
Florian Bruhin
8648d88b51 Handle special keys instead of only modifiers 2014-04-24 17:43:19 +02:00
Florian Bruhin
b372c23b80 Move hint webelem code to utils.webelem 2014-04-24 16:30:59 +02:00
Florian Bruhin
3d292fbc27 Use a stack for current modes 2014-04-24 06:44:58 +02:00
Florian Bruhin
8b5daad367 Add ModeManager 2014-04-23 21:15:47 +02:00
Florian Bruhin
387d0e3be6 Document hint lastChild() hack 2014-04-23 14:34:00 +02:00
Florian Bruhin
61802725a6 Actually use message.error for errors 2014-04-23 06:17:29 +02:00
Florian Bruhin
55e3aca702 linting cleanup 2014-04-22 17:53:27 +02:00
Florian Bruhin
a1650579e9 Reword FIXME comments 2014-04-22 14:35:56 +02:00
Florian Bruhin
70e1a0300c Add explicit types for editable hinting 2014-04-22 14:33:40 +02:00
Florian Bruhin
b167f1f8d8 Clarify QTBUG comment 2014-04-22 14:26:07 +02:00
Florian Bruhin
0de249e904 Support frames correctly in HintManager 2014-04-22 14:23:55 +02:00
Florian Bruhin
ebd3ab778f Make scrolling work with multiple frames 2014-04-22 14:17:17 +02:00
Florian Bruhin
26124920cd Display warnings if at beginning/end of history 2014-04-22 14:06:32 +02:00
Florian Bruhin
5d95c7e19c Remove unused import 2014-04-22 12:10:27 +02:00
Florian Bruhin
ce274aa9c8 Fix printing 2014-04-22 11:16:45 +02:00
Florian Bruhin
78060fc879 Get rid of temp_message signal 2014-04-22 10:08:56 +02:00
Florian Bruhin
1e27f5537d Filter javascript-links from hinting 2014-04-22 09:53:21 +02:00
Florian Bruhin
fec353809b Nicer statusbar texts when hinting 2014-04-22 09:41:43 +02:00
Florian Bruhin
233289228b Reposition hints if contents size changed 2014-04-22 09:35:59 +02:00
Florian Bruhin
8d891bf168 Hints style fixes 2014-04-22 09:35:49 +02:00
Florian Bruhin
ee5e066d86 Display message when hinting. 2014-04-22 09:06:38 +02:00
Florian Bruhin
7e2b590da1 Spelling fix 2014-04-22 08:46:21 +02:00
Florian Bruhin
03c1e1d896 cleanups 2014-04-21 23:53:13 +02:00
Florian Bruhin
65f2409d03 hints: Handle relative/javascript links correctly 2014-04-21 23:44:45 +02:00
Florian Bruhin
ba7f56f5e9 Add different hinting modes (yank, backtab, rapid) 2014-04-21 23:33:36 +02:00
Florian Bruhin
6ce415fc5e Make hint-labels non-clickable. 2014-04-21 23:32:58 +02:00
Florian Bruhin
6bbb5fe598 Add emitted signals to hintmanager docstrings. 2014-04-21 23:32:44 +02:00
Florian Bruhin
9caac26873 Handle no found elements to hint gracefully 2014-04-21 19:31:28 +02:00
Florian Bruhin
a11b14fd2d Implement more hinting modes 2014-04-21 19:29:11 +02:00
Florian Bruhin
67bf654d57 Handle scrolled frame correctly 2014-04-21 18:20:30 +02:00
Florian Bruhin
979685e37a Click topleft of elements 2014-04-21 17:41:51 +02:00
Florian Bruhin
ee8ba55676 Support esc to abort hinting 2014-04-21 17:17:34 +02:00
Florian Bruhin
de0e96ab2d Add clicking on links 2014-04-21 16:59:03 +02:00
Florian Bruhin
c2aa9517ea Mark partial hint matches 2014-04-21 15:45:29 +02:00
Florian Bruhin
d7b87e09c9 Implement modes and hint input. 2014-04-21 15:24:19 +02:00
Florian Bruhin
5a3966ca82 Fix lint, add documentation 2014-04-21 11:03:43 +02:00
Florian Bruhin
98ed6c9812 Implement hint strings 2014-04-21 11:03:43 +02:00
Florian Bruhin
809e7e15b8 Document HINT_CSS 2014-04-21 11:03:43 +02:00
Florian Bruhin
6434dac680 Check element visibility before drawing 2014-04-21 11:03:43 +02:00
Florian Bruhin
a2deba68dc Check if hints are inside screen 2014-04-21 11:03:42 +02:00
Florian Bruhin
3b894580a2 Also check x on invalid rects 2014-04-21 11:03:42 +02:00
Florian Bruhin
293b38a92f Return on invalid rects 2014-04-21 11:03:42 +02:00
Florian Bruhin
5dd74d39fd Make hinting configurable 2014-04-21 11:03:42 +02:00
Florian Bruhin
3bd1470b20 Keep a reference to the labels 2014-04-21 11:03:42 +02:00
Florian Bruhin
41b0655ade Add stop() to HintManager 2014-04-21 11:03:42 +02:00
Florian Bruhin
c4731b6e7e Nicer hints CSS 2014-04-21 11:03:42 +02:00
Florian Bruhin
0b5f4d9fb5 Add some labels to hints 2014-04-21 11:03:42 +02:00
Florian Bruhin
e6569f946c Add proof-of-concept hinting 2014-04-21 11:03:41 +02:00
Florian Bruhin
39f580d9f1 Cleanup 2014-04-17 17:44:27 +02:00
Florian Bruhin
b323706f5f Use maxsplit (passed to str.split()) instead bool 2014-04-17 12:06:27 +02:00
Florian Bruhin
4b1dcbd82a Refactor tab/browser widgets 2014-04-17 09:44:26 +02:00