Move notes to own file
This commit is contained in:
parent
d5891b2e86
commit
a6ae2961ec
12
BUGS
12
BUGS
@ -31,17 +31,7 @@ Bugs
|
|||||||
See also: http://qt-project.org/doc/qt-4.8/qwebpage.html#createWindow
|
See also: http://qt-project.org/doc/qt-4.8/qwebpage.html#createWindow
|
||||||
Asked here: http://stackoverflow.com/q/23498666/2085149
|
Asked here: http://stackoverflow.com/q/23498666/2085149
|
||||||
|
|
||||||
- Shutdown is still flaky.
|
- Shutdown is still flaky. (see notes)
|
||||||
|
|
||||||
Some pointers:
|
|
||||||
https://code.google.com/p/webscraping/source/browse/webkit.py
|
|
||||||
Simply does setPage(None) in __del__ of webview.
|
|
||||||
|
|
||||||
http://www.tenox.net/out/wrp11-qt.py
|
|
||||||
does del self._window; del self._view; del self._page
|
|
||||||
|
|
||||||
http://pydoc.net/Python/grab/0.4.5/ghost.ghost/
|
|
||||||
does webview.close(); del self.manager; del self.page; del self.mainframe
|
|
||||||
|
|
||||||
- Eliding doesn't work correctly in tabs (cuts off start)
|
- Eliding doesn't work correctly in tabs (cuts off start)
|
||||||
This especially happens when there's no favicon
|
This especially happens when there's no favicon
|
||||||
|
25
TODO
25
TODO
@ -32,8 +32,8 @@ New big features
|
|||||||
https://chrome.google.com/webstore/detail/remove-google-redirects/ccenmflbeofaceccfhhggbagkblihpoh
|
https://chrome.google.com/webstore/detail/remove-google-redirects/ccenmflbeofaceccfhhggbagkblihpoh
|
||||||
- Downloads
|
- Downloads
|
||||||
- session handling / saving
|
- session handling / saving
|
||||||
- multi window
|
- multi window (see notes)
|
||||||
- IPC, like dwb -x
|
- IPC, like dwb -x (see notes)
|
||||||
- Bookmarks
|
- Bookmarks
|
||||||
- Internationalization
|
- Internationalization
|
||||||
- more completions (URLs, ...)
|
- more completions (URLs, ...)
|
||||||
@ -45,13 +45,7 @@ Improvements / minor features
|
|||||||
- Print some meaningful message (via qInstallMsgHandler) when platform plugins
|
- Print some meaningful message (via qInstallMsgHandler) when platform plugins
|
||||||
are missing, especially with xcb (on Arch: libxkbcommon-x11)
|
are missing, especially with xcb (on Arch: libxkbcommon-x11)
|
||||||
- Reimplement tabbar to paint it by ourselves to look like dwb
|
- Reimplement tabbar to paint it by ourselves to look like dwb
|
||||||
- Save cookies in Netscape format so it can be used by wget.
|
- Save cookies in Netscape format so it can be used by wget. (see notes)
|
||||||
http://www.cookiecentral.com/faq/#3.5
|
|
||||||
https://docs.python.org/3.4/library/http.cookies.html
|
|
||||||
http://qt-project.org/doc/qt-4.8/qnetworkcookie.html
|
|
||||||
- Second column (flag): TRUE if domain starts with ., else FALSE
|
|
||||||
- if a cookie is a http-only cookie domain is prepended with a #HttpOnly_
|
|
||||||
- Python's http.cookiejar.MozillaCookieJar might help
|
|
||||||
- Zoom with ctrl + mousewheel
|
- Zoom with ctrl + mousewheel
|
||||||
- search highlighting
|
- search highlighting
|
||||||
- vertical tabbar
|
- vertical tabbar
|
||||||
@ -60,17 +54,12 @@ Improvements / minor features
|
|||||||
- Display metavars for commands in input bar.
|
- Display metavars for commands in input bar.
|
||||||
- count support for special keys
|
- count support for special keys
|
||||||
- set-as-default argument/command
|
- set-as-default argument/command
|
||||||
- Enable disk caching
|
- Enable disk caching (see notes)
|
||||||
QNetworkManager.setCache() and use a QNetworkDiskCache probably
|
|
||||||
- clear cookies command
|
- clear cookies command
|
||||||
- keybind/aliases should have completion for commands/arguments
|
- keybind/aliases should have completion for commands/arguments
|
||||||
- Hiding scrollbars
|
- Hiding scrollbars
|
||||||
- Ctrl+A/X to increase/decrease last number in URL
|
- Ctrl+A/X to increase/decrease last number in URL
|
||||||
- Add more element-selection-detection code (with options?) based on:
|
- Add more element-selection-detection code (with options?) (see notes)
|
||||||
-> javascript: http://stackoverflow.com/a/2848120/2085149
|
|
||||||
-> microFocusChanged and check active element via:
|
|
||||||
frame = page.currentFrame()
|
|
||||||
elem = frame.findFirstElement('*:focus')
|
|
||||||
- somehow unfocus elements (hide blinking cursor) when insert mode is left?
|
- somehow unfocus elements (hide blinking cursor) when insert mode is left?
|
||||||
- tabs: some more padding?
|
- tabs: some more padding?
|
||||||
- Copy link location on crash mail should not copy mailto:
|
- Copy link location on crash mail should not copy mailto:
|
||||||
@ -79,9 +68,7 @@ Improvements / minor features
|
|||||||
- Multi-line statusbar or own widget for long messages?
|
- Multi-line statusbar or own widget for long messages?
|
||||||
- :messages command to view past messages
|
- :messages command to view past messages
|
||||||
- Maybe the completion widget shouldn't be a QTreeView with tree models as
|
- Maybe the completion widget shouldn't be a QTreeView with tree models as
|
||||||
there are many hacks involved by now.
|
there are many hacks involved by now (see notes).
|
||||||
Perhaps using a QHBoxLayout of QTableViews and creating/destroying them based
|
|
||||||
on the completion would be a better idea?
|
|
||||||
|
|
||||||
hints
|
hints
|
||||||
-----
|
-----
|
||||||
|
79
notes
Normal file
79
notes
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
Multiwindow
|
||||||
|
===========
|
||||||
|
|
||||||
|
cmdutils.register (and thus Command) gets argument scope which is global/window
|
||||||
|
|
||||||
|
when scope=global, instance is searched starting with the application
|
||||||
|
singleton.
|
||||||
|
|
||||||
|
when scope=window, instance is searched starting with the window the command
|
||||||
|
was executed in.
|
||||||
|
|
||||||
|
Each window has its own CommandDispatcher, which adds the window as an
|
||||||
|
attribute to every Command before calling the handler. The handler then uses
|
||||||
|
this to get the starting point for instance=.
|
||||||
|
|
||||||
|
|
||||||
|
IPC
|
||||||
|
===
|
||||||
|
|
||||||
|
We use QLocalSocket to communicate with another instance
|
||||||
|
TODO: find out why many apps just use QLocalSocket as a control channel, and
|
||||||
|
shared memory for data.
|
||||||
|
Max data size might be 8k, but this is enough for commandline args.
|
||||||
|
|
||||||
|
http://developer.nokia.com/community/wiki/Qt_IPC_using_QLocalSocket_%26_QLocalServer
|
||||||
|
https://www.mail-archive.com/pyqt@riverbankcomputing.com/msg22736.html
|
||||||
|
http://stackoverflow.com/a/8795563/2085149
|
||||||
|
http://nullege.com/codes/show/src%40n%40i%40ninja-ide2-2.1.1%40ninja_ide%40core%40ipc.py/20/PyQt4.QtNetwork.QLocalSocket/python
|
||||||
|
http://nullege.com/codes/show/src%40t%40a%40taurus-3.0.0%40lib%40taurus%40qt%40qtgui%40container%40taurusmainwindow.py/780/PyQt4.QtNetwork.QLocalSocket/python
|
||||||
|
http://nullege.com/codes/show/src%40h%40e%40Heliotrope-HEAD%40purple_server.py/95/PyQt4.QtNetwork.QLocalSocket/python
|
||||||
|
|
||||||
|
|
||||||
|
Netscape cookies
|
||||||
|
================
|
||||||
|
|
||||||
|
http://www.cookiecentral.com/faq/#3.5
|
||||||
|
https://docs.python.org/3.4/library/http.cookies.html
|
||||||
|
http://qt-project.org/doc/qt-4.8/qnetworkcookie.html
|
||||||
|
- Second column (flag): TRUE if domain starts with ., else FALSE
|
||||||
|
- if a cookie is a http-only cookie domain is prepended with a #HttpOnly_
|
||||||
|
- Python's http.cookiejar.MozillaCookieJar might help
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Caching
|
||||||
|
=======
|
||||||
|
|
||||||
|
QNetworkManager.setCache() and use a QNetworkDiskCache probably
|
||||||
|
|
||||||
|
|
||||||
|
Element selection detection
|
||||||
|
===========================
|
||||||
|
|
||||||
|
Possible options:
|
||||||
|
- javascript: http://stackoverflow.com/a/2848120/2085149
|
||||||
|
- microFocusChanged and check active element via:
|
||||||
|
frame = page.currentFrame()
|
||||||
|
elem = frame.findFirstElement('*:focus')
|
||||||
|
|
||||||
|
|
||||||
|
Completion view (not QTreeView)
|
||||||
|
===============================
|
||||||
|
|
||||||
|
Perhaps using a QHBoxLayout of QTableViews and creating/destroying them based
|
||||||
|
on the completion would be a better idea?
|
||||||
|
|
||||||
|
|
||||||
|
Shutdown
|
||||||
|
========
|
||||||
|
|
||||||
|
Some pointers:
|
||||||
|
https://code.google.com/p/webscraping/source/browse/webkit.py
|
||||||
|
Simply does setPage(None) in __del__ of webview.
|
||||||
|
|
||||||
|
http://www.tenox.net/out/wrp11-qt.py
|
||||||
|
does del self._window; del self._view; del self._page
|
||||||
|
|
||||||
|
http://pydoc.net/Python/grab/0.4.5/ghost.ghost/
|
||||||
|
does webview.close(); del self.manager; del self.page; del self.mainframe
|
Loading…
Reference in New Issue
Block a user