Skip to content

Commit

Permalink
debian packaging update: add internal QtWebKit bindings
Browse files Browse the repository at this point in the history
  • Loading branch information
jef-n committed Sep 6, 2016
1 parent 02af8b5 commit c2f0fff
Show file tree
Hide file tree
Showing 21 changed files with 2,001 additions and 6 deletions.
3 changes: 0 additions & 3 deletions cmake/SIPMacros.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -137,9 +137,6 @@ MACRO(BUILD_SIP_PYTHON_MODULE MODULE_NAME SIP_FILES EXTRA_OBJECTS)

IF (WIN32)
SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES SUFFIX ".pyd")
ENDIF (WIN32)

IF(WIN32)
GET_TARGET_PROPERTY(_runtime_output ${_logical_name} RUNTIME_OUTPUT_DIRECTORY)
ADD_CUSTOM_COMMAND(TARGET ${_logical_name} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E echo "Copying extension ${_child_module_name}"
Expand Down
2 changes: 1 addition & 1 deletion debian/control.in
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Build-Depends:
libqt4-opengl-dev,
libqca2-dev,
libqca2-plugin-ossl,
#jessie precise trusty utopic xenial# libqtwebkit-dev,
libqtwebkit-dev,
#stretch jessie# libqwt-dev,
#precise trusty xenial sid# libqwt5-qt4-dev,
#sid stretch jessie trusty xenial# libqjson-dev,
Expand Down
1 change: 1 addition & 0 deletions debian/python-qgis.install.in
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ usr/lib/python*/*-packages/qgis/server/*
usr/lib/python*/*-packages/qgis/testing/*
#precise#usr/lib/python*/*-packages/pyspatialite/*.py
#precise#usr/lib/python*/*-packages/pyspatialite/*.so
#sid stretch xenial#usr/lib/python*/*-packages/PyQt4/*.so
4 changes: 2 additions & 2 deletions debian/rules
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,8 @@ ifneq (,$(findstring $(DISTRIBUTION),"sid stretch"))
CMAKE_OPTS += -DPOSTGRES_LIBRARY=/usr/lib/$(DEB_BUILD_MULTIARCH)/libpq.so
endif

ifneq (,$(findstring $(DISTRIBUTION),"sid stretch"))
CMAKE_OPTS += -DWITH_QTWEBKIT=FALSE
ifneq (,$(findstring $(DISTRIBUTION),"sid stretch xenial"))
CMAKE_OPTS += -DWITH_INTERNAL_WEBKIT_BINDINGS=TRUE
endif

ifneq (,$(findstring $(DISTRIBUTION),"sid"))
Expand Down
14 changes: 14 additions & 0 deletions python/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -338,3 +338,17 @@ FOREACH(module ${PY_MODULES})
ENDFOREACH(pyfile)
PY_COMPILE(py${module} "${QGIS_PYTHON_OUTPUT_DIRECTORY}/${module}")
ENDFOREACH(module)

SET (WITH_INTERNAL_WEBKIT_BINDINGS FALSE CACHE BOOL "Build internal QtWebKit bindings")
IF(WITH_INTERNAL_WEBKIT_BINDINGS)
INCLUDE_DIRECTORIES(${QT_QTWEBKIT_INCLUDE_DIR})
FILE(GLOB_RECURSE sip_files_qtwebkit QtWebKit/*.sip)
SET(SIP_EXTRA_FILES_DEPEND ${sip_files_qtwebkit})
SET(SIP_EXTRA_OPTIONS ${PYQT_SIP_FLAGS} -o -a ${CMAKE_BINARY_DIR}/python/PyQt4.QtWebKit.api)

SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PYTHON_OUTPUT_DIRECTORY}/PyQt4)
SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PYTHON_OUTPUT_DIRECTORY}/PyQt4)
GENERATE_SIP_PYTHON_MODULE_CODE(PyQt4.QtWebKit QtWebKit/QtWebKitmod.sip cpp_files)
BUILD_SIP_PYTHON_MODULE(PyQt4.QtWebKit QtWebKitmod.sip ${cpp_files} "" QtWebKit QtCore QtGui QtNetwork)
SET(SIP_QTWEBKIT_CPP_FILES ${cpp_files})
ENDIF(WITH_INTERNAL_WEBKIT_BINDINGS)
63 changes: 63 additions & 0 deletions python/QtWebKit/QtWebKitmod.sip
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
// QtWebKitmod.sip generated by MetaSIP
//
// This file is part of the QtWebKit Python extension module.
//
// Copyright (c) 2015 Riverbank Computing Limited <info@riverbankcomputing.com>
//
// This file is part of PyQt4.
//
// This file may be used under the terms of the GNU General Public License
// version 3.0 as published by the Free Software Foundation and appearing in
// the file LICENSE included in the packaging of this file. Please review the
// following information to ensure the GNU General Public License version 3.0
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
//
// If you do not wish to use this file under the terms of the GPL version 3.0
// then you may purchase a commercial license. For more information contact
// info@riverbankcomputing.com.
//
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.


%Module(name=PyQt4.QtWebKit, keyword_arguments="Optional")

%Import QtCore/QtCoremod.sip
%Import QtGui/QtGuimod.sip
%Import QtNetwork/QtNetworkmod.sip

%Copying
Copyright (c) 2015 Riverbank Computing Limited <info@riverbankcomputing.com>

This file is part of PyQt4.

This file may be used under the terms of the GNU General Public License
version 3.0 as published by the Free Software Foundation and appearing in
the file LICENSE included in the packaging of this file. Please review the
following information to ensure the GNU General Public License version 3.0
requirements will be met: http://www.gnu.org/copyleft/gpl.html.

If you do not wish to use this file under the terms of the GPL version 3.0
then you may purchase a commercial license. For more information contact
info@riverbankcomputing.com.

This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
%End

%DefaultSupertype sip.simplewrapper

%Include qgraphicswebview.sip
%Include qwebdatabase.sip
%Include qwebelement.sip
%Include qwebframe.sip
%Include qwebkitglobal.sip
%Include qwebhistory.sip
%Include qwebhistoryinterface.sip
%Include qwebinspector.sip
%Include qwebkitversion.sip
%Include qwebpage.sip
%Include qwebpluginfactory.sip
%Include qwebsecurityorigin.sip
%Include qwebsettings.sip
%Include qwebview.sip
Empty file added python/QtWebKit/__init__.py
Empty file.
150 changes: 150 additions & 0 deletions python/QtWebKit/qgraphicswebview.sip
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
// qgraphicswebview.sip generated by MetaSIP
//
// This file is part of the QtWebKit Python extension module.
//
// Copyright (c) 2015 Riverbank Computing Limited <info@riverbankcomputing.com>
//
// This file is part of PyQt4.
//
// This file may be used under the terms of the GNU General Public License
// version 3.0 as published by the Free Software Foundation and appearing in
// the file LICENSE included in the packaging of this file. Please review the
// following information to ensure the GNU General Public License version 3.0
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
//
// If you do not wish to use this file under the terms of the GPL version 3.0
// then you may purchase a commercial license. For more information contact
// info@riverbankcomputing.com.
//
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.


%If (Qt_4_6_0 -)

class QGraphicsWebView : QGraphicsWidget
{
%TypeHeaderCode
#include <qgraphicswebview.h>
%End

%ConvertToSubClassCode
sipType = 0;

// For some reason Qt doesn't allocate a new type for this so we have to test
// the numeric and QObject types.
if (sipCpp->type() == 11)
{
QGraphicsWidget *gw = static_cast<QGraphicsWidget *>(sipCpp);

if (gw->inherits("QGraphicsWebView"))
{
*sipCppRet = static_cast<QGraphicsWebView *>(gw);
sipType = sipType_QGraphicsWebView;
}
}
%End

public:
explicit QGraphicsWebView(QGraphicsItem *parent /TransferThis/ = 0);
virtual ~QGraphicsWebView();
QWebPage *page() const;
void setPage(QWebPage * /KeepReference/);
QUrl url() const;
void setUrl(const QUrl &);
QString title() const;
QIcon icon() const;
qreal zoomFactor() const;
void setZoomFactor(qreal);
bool isModified() const;
void load(const QUrl &url) /ReleaseGIL/;
void load(const QNetworkRequest &request, QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, const QByteArray &body = QByteArray()) /ReleaseGIL/;
void setHtml(const QString &html, const QUrl &baseUrl = QUrl());
void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl());
QWebHistory *history() const;
QWebSettings *settings() const;
QAction *pageAction(QWebPage::WebAction action) const;
void triggerPageAction(QWebPage::WebAction action, bool checked = false);
bool findText(const QString &subString, QFlags<QWebPage::FindFlag> options = 0);
virtual void setGeometry(const QRectF &rect);
virtual void updateGeometry();
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value);
virtual bool event(QEvent *);
virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint) const;
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const;

public slots:
void stop();
void back();
void forward();
void reload();

signals:
void loadStarted();
void loadFinished(bool);
void loadProgress(int progress);
void urlChanged(const QUrl &);
void titleChanged(const QString &);
void iconChanged();
void statusBarMessage(const QString &message);
void linkClicked(const QUrl &);

protected:
virtual void mousePressEvent(QGraphicsSceneMouseEvent *);
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *);
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *);
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *);
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *);
virtual void wheelEvent(QGraphicsSceneWheelEvent *);
virtual void keyPressEvent(QKeyEvent *);
virtual void keyReleaseEvent(QKeyEvent *);
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *);
virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *);
virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *);
virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *);
virtual void dropEvent(QGraphicsSceneDragDropEvent *);
virtual void focusInEvent(QFocusEvent *);
virtual void focusOutEvent(QFocusEvent *);
virtual void inputMethodEvent(QInputMethodEvent *);
virtual bool focusNextPrevChild(bool next);
virtual bool sceneEvent(QEvent *);

public:
%If (Qt_4_7_0 -)
bool resizesToContents() const;
%End
%If (Qt_4_7_0 -)
void setResizesToContents(bool enabled);
%End
%If (Qt_4_7_0 -)
bool isTiledBackingStoreFrozen() const;
%End
%If (Qt_4_7_0 -)
void setTiledBackingStoreFrozen(bool frozen);
%End
%If (Qt_4_8_0 -)
QFlags<QPainter::RenderHint> renderHints() const;
%End
%If (Qt_4_8_0 -)
void setRenderHints(QFlags<QPainter::RenderHint> hints);
%End
%If (Qt_4_8_0 -)
void setRenderHint(QPainter::RenderHint hint, bool enabled = true);
%End
};

%End

%ModuleHeaderCode
#if QT_VERSION >= 0x040600
// This is needed by the %ConvertSubClassCode.
#include <QGraphicsWebView>
#endif

// This is needed for Qt v5.0.0.
#if defined(B0)
#undef B0
#endif
%End
46 changes: 46 additions & 0 deletions python/QtWebKit/qwebdatabase.sip
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
// qwebdatabase.sip generated by MetaSIP
//
// This file is part of the QtWebKit Python extension module.
//
// Copyright (c) 2015 Riverbank Computing Limited <info@riverbankcomputing.com>
//
// This file is part of PyQt4.
//
// This file may be used under the terms of the GNU General Public License
// version 3.0 as published by the Free Software Foundation and appearing in
// the file LICENSE included in the packaging of this file. Please review the
// following information to ensure the GNU General Public License version 3.0
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
//
// If you do not wish to use this file under the terms of the GPL version 3.0
// then you may purchase a commercial license. For more information contact
// info@riverbankcomputing.com.
//
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.


%If (Qt_4_5_0 -)

class QWebDatabase
{
%TypeHeaderCode
#include <qwebdatabase.h>
%End

public:
QWebDatabase(const QWebDatabase &other);
~QWebDatabase();
QString name() const;
QString displayName() const;
qint64 expectedSize() const;
qint64 size() const;
QString fileName() const;
QWebSecurityOrigin origin() const;
static void removeDatabase(const QWebDatabase &db);
%If (Qt_4_6_0 -)
static void removeAllDatabases();
%End
};

%End
Loading

0 comments on commit c2f0fff

Please sign in to comment.