* Add initial printing support with QtWebEngine >= 5.7.0
This works by printing to PDF first, then sending the PDF to a printer
if printing to a physical printer was requested.
On *nix (including Mac OS X), we use the lpr command, which is typically
provided by CUPS nowadays. Currently, no options beyond the printer name
are passed, there is room for improvement there. (Okular has a
FilePrinter class that handles this in a more sophisticated way.)
On Windows, we use ShellExecuteW with the "printto" verb. In that case,
the printer name is unfortunately the only thing that can be passed. The
user experience may also be suboptimal depending on the PDF viewer
installed on the system. (E.g., Adobe Reader is reported to ignore
SW_HIDE.) And if there is no PDF viewer installed at all, it will of
course not work at all. But it is the best we can do without bundling
something like GhostScript (or requiring the user to install it).
* Printing: Let lpr autoremove the temporary file instead of QTemporaryFile
Only lpr knows for sure when it is safe to delete the temporary file.
* Printing: Use the callback version of printToPdf instead of the file one
The file version is also asynchronous and does not report when it is
done.
* Printing: Use async QProcess API instead of QProcess::execute to run lpr
This also required making tempFile a QTemporaryFile * instead of a
QTemporaryFile on the stack, because QTemporaryFile is a QObject and
cannot be copied.
* Printing: Adapt the FilePrinter from Okular to pass correct lpr args
The license of those files is GPLv2+, which is compatible with
QupZilla's GPLv3+ licensing.
This fixes site info being opened twice when pressing Ctrl+I while
having focus in webview.
This makes the input events handling code very fragile, so let's hope
this won't break anything .. and QtWebEngine won't change the behavior
in following releases.
This is first quick port to QtWebEngine, most of advanced features
are not working yet. Please read README.
For now, it will use separate profile directory as well as browser
session, that means you can use both QtWebEngine and QtWebKit versions
at the same time.
Make sure the Configuration Information action won't be
detected as "Preferences..." action.
Also use native shortcut for fullscreen (Ctrl+Meta+F)
Closes#1332
Motivated by #695 which targets broader task, Ctrl-Q behaviour is one
that stands out. Accidentally pressing it instead of Ctrl-W can have
disasterous consequences or is annoying. Other browsers provide either
generic keyboard shortcuts configuration (Opera) or an extension/plugin
to disable the behaviour (FF).
For the record of the usability demand:
https://code.google.com/p/chromium/issues/detail?id=59621https://bugzilla.mozilla.org/show_bug.cgi?id=550559
All actions are now saved in QHash with name, this will make possible
to implement own keyboard shortcuts for actions.
+ WIP cleanup of BrowserWindow class