1
mirror of https://invent.kde.org/network/falkon.git synced 2024-09-22 18:22:10 +02:00
falkonOfficial/src/lib/lib.pro

494 lines
15 KiB
Prolog
Raw Normal View History

Add initial printing support with QtWebEngine >= 5.7.0 (#2068) * 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.
2016-09-14 14:07:07 +02:00
QT += webenginecore webenginewidgets webchannel network widgets sql quickwidgets printsupport
TARGET = QupZilla
TEMPLATE = lib
DEFINES *= QUPZILLA_SHAREDLIBRARY
2015-02-08 11:09:53 +01:00
CONFIG += c++11
include(../defines.pri)
2012-02-23 22:18:02 +01:00
include(../../translations/translations.pri)
include(3rdparty/qtsingleapplication/qtsingleapplication.pri)
2014-02-07 22:48:30 +01:00
CONFIG(debug, debug|release): include(../../tests/modeltest/modeltest.pri)
unix:!contains(DEFINES, "DISABLE_DBUS") QT += dbus
INCLUDEPATH += 3rdparty \
adblock \
app \
autofill \
bookmarks \
cookies \
downloads \
history \
navigation \
network \
notifications \
opensearch \
other \
plugins \
popupwindow \
preferences \
session \
sidebar \
tabwidget \
tools \
2015-08-28 16:11:58 +02:00
webengine \
webtab \
DEPENDPATH += $$INCLUDEPATH \
data \
SOURCES += \
3rdparty/ecwin7.cpp \
3rdparty/fancytabwidget.cpp \
3rdparty/lineedit.cpp \
3rdparty/processinfo.cpp \
3rdparty/qtwin.cpp \
3rdparty/squeezelabelv1.cpp \
3rdparty/squeezelabelv2.cpp \
3rdparty/stylehelper.cpp \
adblock/adblockaddsubscriptiondialog.cpp \
adblock/adblockurlinterceptor.cpp \
adblock/adblockdialog.cpp \
adblock/adblockicon.cpp \
adblock/adblockmanager.cpp \
adblock/adblockmatcher.cpp \
adblock/adblockrule.cpp \
adblock/adblocksearchtree.cpp \
adblock/adblocksubscription.cpp \
adblock/adblocktreewidget.cpp \
app/autosaver.cpp \
app/browserwindow.cpp \
app/commandlineoptions.cpp \
app/datapaths.cpp \
app/mainapplication.cpp \
app/mainmenu.cpp \
app/profilemanager.cpp \
app/proxystyle.cpp \
app/qzcommon.cpp \
app/settings.cpp \
autofill/autofill.cpp \
autofill/autofillicon.cpp \
autofill/autofillnotification.cpp \
autofill/autofillwidget.cpp \
autofill/passwordbackends/databaseencryptedpasswordbackend.cpp \
autofill/passwordbackends/databasepasswordbackend.cpp \
autofill/passwordbackends/passwordbackend.cpp \
autofill/passwordmanager.cpp \
bookmarks/bookmarkitem.cpp \
bookmarks/bookmarks.cpp \
bookmarks/bookmarksexport/bookmarksexportdialog.cpp \
bookmarks/bookmarksexport/bookmarksexporter.cpp \
bookmarks/bookmarksexport/htmlexporter.cpp \
bookmarks/bookmarksicon.cpp \
bookmarks/bookmarksimport/bookmarksimportdialog.cpp \
bookmarks/bookmarksimport/bookmarksimporter.cpp \
bookmarks/bookmarksimport/firefoximporter.cpp \
bookmarks/bookmarksimport/htmlimporter.cpp \
bookmarks/bookmarksimport/chromeimporter.cpp \
bookmarks/bookmarksimport/ieimporter.cpp \
bookmarks/bookmarksimport/operaimporter.cpp \
bookmarks/bookmarksitemdelegate.cpp \
bookmarks/bookmarksmanager.cpp \
bookmarks/bookmarksmenu.cpp \
bookmarks/bookmarksmodel.cpp \
bookmarks/bookmarkstoolbarbutton.cpp \
bookmarks/bookmarkstoolbar.cpp \
bookmarks/bookmarkstools.cpp \
bookmarks/bookmarkstreeview.cpp \
bookmarks/bookmarkswidget.cpp \
cookies/cookiejar.cpp \
cookies/cookiemanager.cpp \
downloads/downloaditem.cpp \
downloads/downloadmanager.cpp \
downloads/downloadoptionsdialog.cpp \
history/history.cpp \
history/historyitem.cpp \
history/historymanager.cpp \
history/historymenu.cpp \
history/historymodel.cpp \
history/historytreeview.cpp \
navigation/completer/locationcompleter.cpp \
navigation/completer/locationcompleterdelegate.cpp \
navigation/completer/locationcompletermodel.cpp \
navigation/completer/locationcompleterrefreshjob.cpp \
navigation/completer/locationcompleterview.cpp \
navigation/downicon.cpp \
navigation/goicon.cpp \
navigation/locationbar.cpp \
navigation/locationbarpopup.cpp \
navigation/navigationbar.cpp \
navigation/navigationcontainer.cpp \
navigation/reloadstopbutton.cpp \
navigation/siteicon.cpp \
navigation/websearchbar.cpp \
2015-09-29 11:45:39 +02:00
network/networkmanager.cpp \
network/networkproxyfactory.cpp \
2015-10-05 19:47:42 +02:00
network/networkurlinterceptor.cpp \
#network/schemehandlers/fileschemehandler.cpp \
network/schemehandlers/qupzillaschemehandler.cpp \
network/sslerrordialog.cpp \
notifications/desktopnotification.cpp \
notifications/desktopnotificationsfactory.cpp \
opensearch/editsearchengine.cpp \
opensearch/opensearchengine.cpp \
opensearch/opensearchenginedelegate.cpp \
opensearch/opensearchreader.cpp \
opensearch/searchenginesdialog.cpp \
opensearch/searchenginesmanager.cpp \
other/aboutdialog.cpp \
other/browsinglibrary.cpp \
other/clearprivatedata.cpp \
other/checkboxdialog.cpp \
other/iconchooser.cpp \
other/licenseviewer.cpp \
other/qzsettings.cpp \
other/siteinfo.cpp \
other/siteinfowidget.cpp \
other/statusbarmessage.cpp \
other/updater.cpp \
other/useragentmanager.cpp \
plugins/pluginproxy.cpp \
plugins/plugins.cpp \
plugins/speeddial.cpp \
popupwindow/popuplocationbar.cpp \
popupwindow/popupstatusbarmessage.cpp \
popupwindow/popupwebview.cpp \
popupwindow/popupwindow.cpp \
preferences/acceptlanguage.cpp \
preferences/autofillmanager.cpp \
preferences/jsoptions.cpp \
preferences/pluginlistdelegate.cpp \
preferences/pluginsmanager.cpp \
preferences/preferences.cpp \
preferences/thememanager.cpp \
preferences/useragentdialog.cpp \
session/recoveryjsobject.cpp \
session/restoremanager.cpp \
sidebar/bookmarkssidebar.cpp \
sidebar/historysidebar.cpp \
sidebar/sidebar.cpp \
tabwidget/combotabbar.cpp \
tabwidget/tabbar.cpp \
tabwidget/tabicon.cpp \
tabwidget/tabstackedwidget.cpp \
tabwidget/tabwidget.cpp \
tools/aesinterface.cpp \
tools/animatedwidget.cpp \
tools/buttonbox.cpp \
tools/buttonwithmenu.cpp \
tools/certificateinfowidget.cpp \
tools/clickablelabel.cpp \
tools/closedtabsmanager.cpp \
tools/colors.cpp \
tools/delayedfilewatcher.cpp \
tools/docktitlebarwidget.cpp \
tools/emptynetworkreply.cpp \
tools/enhancedmenu.cpp \
tools/focusselectlineedit.cpp \
tools/frame.cpp \
tools/headerview.cpp \
tools/horizontallistwidget.cpp \
tools/html5permissions/html5permissionsdialog.cpp \
tools/html5permissions/html5permissionsmanager.cpp \
tools/html5permissions/html5permissionsnotification.cpp \
tools/iconprovider.cpp \
tools/listitemdelegate.cpp \
tools/mactoolbutton.cpp \
tools/menubar.cpp \
tools/pagethumbnailer.cpp \
tools/progressbar.cpp \
2015-02-26 12:15:58 +01:00
tools/qzregexp.cpp \
tools/qztools.cpp \
tools/scripts.cpp \
tools/sqldatabase.cpp \
tools/toolbutton.cpp \
tools/treewidget.cpp \
tools/widget.cpp \
webengine/javascript/autofilljsobject.cpp \
webengine/javascript/externaljsobject.cpp \
2015-08-28 16:11:58 +02:00
webengine/loadrequest.cpp \
webengine/webhittestresult.cpp \
2015-08-28 16:11:58 +02:00
webengine/webinspector.cpp \
webengine/webpage.cpp \
webengine/webview.cpp \
webtab/searchtoolbar.cpp \
webtab/tabbedwebview.cpp \
webtab/webtab.cpp \
HEADERS += \
3rdparty/ecwin7.h \
3rdparty/fancytabwidget.h \
3rdparty/lineedit.h \
3rdparty/msvc2008.h \
3rdparty/processinfo.h \
3rdparty/qtwin.h \
3rdparty/squeezelabelv1.h \
3rdparty/squeezelabelv2.h \
3rdparty/stylehelper.h \
adblock/adblockaddsubscriptiondialog.h \
adblock/adblockurlinterceptor.h \
adblock/adblockdialog.h \
adblock/adblockicon.h \
adblock/adblockmanager.h \
adblock/adblockmatcher.h \
adblock/adblockrule.h \
adblock/adblocksearchtree.h \
adblock/adblocksubscription.h \
adblock/adblocktreewidget.h \
app/autosaver.h \
app/browserwindow.h \
app/commandlineoptions.h \
app/datapaths.h \
app/mainapplication.h \
app/mainmenu.h \
app/profilemanager.h \
app/proxystyle.h \
app/qzcommon.h \
app/settings.h \
autofill/autofill.h \
autofill/autofillicon.h \
autofill/autofillnotification.h \
autofill/autofillwidget.h \
autofill/passwordbackends/databaseencryptedpasswordbackend.h \
autofill/passwordbackends/databasepasswordbackend.h \
autofill/passwordbackends/passwordbackend.h \
autofill/passwordmanager.h \
bookmarks/bookmarkitem.h \
bookmarks/bookmarksexport/bookmarksexportdialog.h \
bookmarks/bookmarksexport/bookmarksexporter.h \
bookmarks/bookmarksexport/htmlexporter.h \
bookmarks/bookmarks.h \
bookmarks/bookmarksicon.h \
bookmarks/bookmarksimport/bookmarksimportdialog.h \
bookmarks/bookmarksimport/bookmarksimporter.h \
bookmarks/bookmarksimport/firefoximporter.h \
bookmarks/bookmarksimport/htmlimporter.h \
bookmarks/bookmarksimport/chromeimporter.h \
bookmarks/bookmarksimport/ieimporter.h \
bookmarks/bookmarksimport/operaimporter.h \
bookmarks/bookmarksitemdelegate.h \
bookmarks/bookmarksmanager.h \
bookmarks/bookmarksmenu.h \
bookmarks/bookmarksmodel.h \
bookmarks/bookmarkstoolbarbutton.h \
bookmarks/bookmarkstoolbar.h \
bookmarks/bookmarkstools.h \
bookmarks/bookmarkstreeview.h \
bookmarks/bookmarkswidget.h \
cookies/cookiejar.h \
cookies/cookiemanager.h \
downloads/downloaditem.h \
downloads/downloadmanager.h \
downloads/downloadoptionsdialog.h \
history/history.h \
history/historyitem.h \
history/historymanager.h \
history/historymenu.h \
history/historymodel.h \
history/historytreeview.h \
navigation/completer/locationcompleterdelegate.h \
navigation/completer/locationcompleter.h \
navigation/completer/locationcompletermodel.h \
navigation/completer/locationcompleterrefreshjob.h \
navigation/completer/locationcompleterview.h \
navigation/downicon.h \
navigation/goicon.h \
navigation/locationbar.h \
navigation/locationbarpopup.h \
navigation/navigationbar.h \
navigation/navigationcontainer.h \
navigation/reloadstopbutton.h \
navigation/siteicon.h \
navigation/websearchbar.h \
2015-09-29 11:45:39 +02:00
network/networkmanager.h \
network/networkproxyfactory.h \
2015-10-05 19:47:42 +02:00
network/networkurlinterceptor.h \
#network/schemehandlers/fileschemehandler.h \
network/schemehandlers/qupzillaschemehandler.h \
2015-10-05 19:47:42 +02:00
network/urlinterceptor.h \
network/sslerrordialog.h \
notifications/desktopnotification.h \
notifications/desktopnotificationsfactory.h \
opensearch/editsearchengine.h \
opensearch/opensearchenginedelegate.h \
opensearch/opensearchengine.h \
opensearch/opensearchreader.h \
opensearch/searchenginesdialog.h \
opensearch/searchenginesmanager.h \
other/aboutdialog.h \
other/browsinglibrary.h \
other/clearprivatedata.h \
other/checkboxdialog.h \
other/iconchooser.h \
other/licenseviewer.h \
other/qzsettings.h \
other/siteinfo.h \
other/siteinfowidget.h \
other/statusbarmessage.h \
other/updater.h \
other/useragentmanager.h \
plugins/plugininterface.h \
plugins/pluginproxy.h \
plugins/plugins.h \
plugins/speeddial.h \
popupwindow/popuplocationbar.h \
popupwindow/popupstatusbarmessage.h \
popupwindow/popupwebview.h \
popupwindow/popupwindow.h \
preferences/acceptlanguage.h \
preferences/autofillmanager.h \
preferences/jsoptions.h \
preferences/pluginlistdelegate.h \
preferences/pluginsmanager.h \
preferences/preferences.h \
preferences/thememanager.h \
preferences/useragentdialog.h \
session/recoveryjsobject.h \
session/restoremanager.h \
sidebar/bookmarkssidebar.h \
sidebar/historysidebar.h \
sidebar/sidebar.h \
sidebar/sidebarinterface.h \
tabwidget/combotabbar.h \
tabwidget/tabbar.h \
tabwidget/tabicon.h \
tabwidget/tabstackedwidget.h \
tabwidget/tabwidget.h \
tools/aesinterface.h \
tools/animatedwidget.h \
tools/buttonbox.h \
tools/buttonwithmenu.h \
tools/certificateinfowidget.h \
tools/clickablelabel.h \
tools/closedtabsmanager.h \
tools/colors.h \
tools/delayedfilewatcher.h \
tools/docktitlebarwidget.h \
tools/emptynetworkreply.h \
tools/enhancedmenu.h \
tools/focusselectlineedit.h \
tools/frame.h \
tools/headerview.h \
tools/horizontallistwidget.h \
tools/html5permissions/html5permissionsdialog.h \
tools/html5permissions/html5permissionsmanager.h \
tools/html5permissions/html5permissionsnotification.h \
tools/iconprovider.h \
tools/listitemdelegate.h \
tools/mactoolbutton.h \
tools/menubar.h \
tools/pagethumbnailer.h \
tools/progressbar.h \
2015-02-26 12:15:58 +01:00
tools/qzregexp.h \
tools/qztools.h \
tools/scripts.h \
tools/sqldatabase.h \
tools/toolbutton.h \
tools/treewidget.h \
tools/widget.h \
webengine/javascript/autofilljsobject.h \
webengine/javascript/externaljsobject.h \
2015-08-28 16:11:58 +02:00
webengine/loadrequest.h \
webengine/webhittestresult.cpp \
2015-08-28 16:11:58 +02:00
webengine/webinspector.h \
webengine/webpage.h \
webengine/webview.h \
webtab/searchtoolbar.h \
webtab/tabbedwebview.h \
webtab/webtab.h \
FORMS += \
adblock/adblockaddsubscriptiondialog.ui \
adblock/adblockdialog.ui \
autofill/autofillnotification.ui \
autofill/autofillwidget.ui \
autofill/passwordbackends/masterpassworddialog.ui \
bookmarks/bookmarksexport/bookmarksexportdialog.ui \
bookmarks/bookmarksimport/bookmarksimportdialog.ui \
bookmarks/bookmarksmanager.ui \
bookmarks/bookmarkswidget.ui \
cookies/cookiemanager.ui \
downloads/downloaditem.ui \
downloads/downloadmanager.ui \
downloads/downloadoptionsdialog.ui \
history/historymanager.ui \
network/sslerrordialog.ui \
notifications/desktopnotification.ui \
opensearch/editsearchengine.ui \
opensearch/searchenginesdialog.ui \
other/aboutdialog.ui \
other/browsinglibrary.ui \
other/clearprivatedata.ui \
other/checkboxdialog.ui \
other/iconchooser.ui \
other/siteinfo.ui \
other/siteinfowidget.ui \
preferences/acceptlanguage.ui \
preferences/addacceptlanguage.ui \
preferences/autofillmanager.ui \
preferences/jsoptions.ui \
preferences/pluginslist.ui \
preferences/preferences.ui \
preferences/thememanager.ui \
preferences/useragentdialog.ui \
sidebar/bookmarkssidebar.ui \
sidebar/historysidebar.ui \
tools/certificateinfowidget.ui \
tools/docktitlebarwidget.ui \
tools/html5permissions/html5permissionsdialog.ui \
tools/html5permissions/html5permissionsnotification.ui \
2015-08-28 16:11:58 +02:00
webengine/jsalert.ui \
webengine/jsconfirm.ui \
webengine/jsprompt.ui \
webtab/searchtoolbar.ui \
RESOURCES += \
data/data.qrc \
data/html.qrc \
data/icons.qrc \
data/oxygen-fallback.qrc
!mac:unix {
target.path = $$library_folder
INSTALLS += target
2015-08-18 09:56:17 +02:00
!contains(DEFINES, NO_X11) {
LIBS += -lxcb
2015-08-18 09:56:17 +02:00
QT *= x11extras
}
LIBS += -lcrypto
}
win32 {
HEADERS += other/registerqappassociation.h
SOURCES += other/registerqappassociation.cpp
LIBS += -llibeay32
Add initial printing support with QtWebEngine >= 5.7.0 (#2068) * 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.
2016-09-14 14:07:07 +02:00
} else {
HEADERS += app/fileprinter.h
SOURCES += app/fileprinter.cpp
}
2014-01-01 23:15:50 +01:00
os2 {
LIBS += -lcrypto
2014-01-01 23:15:50 +01:00
}
mac {
# homebrew openssl
Mac: Repair current OpenSSL undefined reference from homebrew to dynamic (#1971) * Repair current OpenSSL static reference from homebrew * These are the default locations, as of today, for Mac OS X 10.11.4 *(El Capitan)* **NOTES** * This could really use some environment variables for homebrew root and which SSL version is in use. Not familiar enough yet with recent Qt to do this at this time. * Symbolic links could also be used but again determining the current homebrew SSL installed is something to be desired e.g. similar to `$ openssl version` e.g. perhaps a `cut` of `$ brew info openssl`? Refs: * http://brew.sh/ *(homepage)* * https://github.com/Homebrew/brew *(repo)* Historical refs: * #1888 * #1850 * Mac: Scrape `brew` output for openssl working install directory as per @nowrep * Addresses a long standing bug on Mac compiling with this project * Also correct the BUILDING markdown file for OS X... was awaiting response from the owner to do this to see which direction to move. **NOTES** * Quotes **are required** when using `$$system` here otherwise `cut` fails with no switch argument found Applies to #1971 * Fix BUILDING to BUILDING.md * Do this so it actually parses markdown Indirectly related to #1971 * Fix `brew` to Homebrew * Even though the project is named `brew` and owner is `Homebrew` their pages refers to it as `Homebrew` Applies to #1971 * Yet another change * There are more symlinks... so the results from `brew --prefix openssl` yields a symlinked path and adding `/include` and `/lib` to them resolve alternately to the `Cellar`. Feel **much** better about using this one since it's an exact API as I mentioned earlier in the PR Applies to #1971 * Add a single newline for @cranes-bill * Only one newline is needed and has nothing to do with trailing spaces... at least according to the GH editor * Restores the flow :) Applies to #1971 * More flow of README.md * GH preview said it didn't need this but I guess it does... we'll try newlines everywhere ;) Applies to #1971 * Use non-standard markdown for "newlines" * Restore the spaces manually **NOTES** This is not any known specification but it's what @nowrep wants Refs: * [CommonMark](http://commonmark.org/) * [Daring Fireballs](http://daringfireball.net/projects/markdown/)
2016-05-14 12:45:28 +02:00
BREW_OPENSSL = $$system("brew --prefix openssl")
INCLUDEPATH += $$BREW_OPENSSL/include
LIBS += -L$$BREW_OPENSSL/lib
LIBS += -lcrypto -framework CoreServices
}
message(===========================================)
message( Using following defines:)
message( $$DEFINES)