diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -84,6 +84,10 @@ find_package(Qt5OpenGL REQUIRED) find_package(Qt5PrintSupport REQUIRED) +#TODO +find_package(Qt5WebEngine REQUIRED) +find_package(Qt5WebEngineWidgets REQUIRED) + if(QTONLY) # Forward the old QTONLY=TRUE option to the new WITH_KDE=FALSE set(WITH_KF5 FALSE) diff --git a/src/apps/behaim/CMakeLists.txt b/src/apps/behaim/CMakeLists.txt --- a/src/apps/behaim/CMakeLists.txt +++ b/src/apps/behaim/CMakeLists.txt @@ -22,6 +22,10 @@ ${Qt5Widgets_LIBRARIES} ${Qt5PrintSupport_LIBRARIES} ${Qt5Network_LIBRARIES} + #TODO + ${Qt5WebEngineWidgets_LIBRARIES} + ${Qt5WebEngine_LIBRARIES} + ${Qt5WebKitWidgets_LIBRARIES} ${Qt5WebKit_LIBRARIES} ${Qt5Sql_LIBRARIES} diff --git a/src/apps/marble-maps/CMakeLists.txt b/src/apps/marble-maps/CMakeLists.txt --- a/src/apps/marble-maps/CMakeLists.txt +++ b/src/apps/marble-maps/CMakeLists.txt @@ -22,6 +22,10 @@ ${Qt5Widgets_LIBRARIES} ${Qt5PrintSupport_LIBRARIES} ${Qt5Network_LIBRARIES} + #TODO + ${Qt5WebEngineWidgets_LIBRARIES} + ${Qt5WebEngine_LIBRARIES} + ${Qt5WebKitWidgets_LIBRARIES} ${Qt5WebKit_LIBRARIES} ${Qt5Sql_LIBRARIES} diff --git a/src/apps/marble-qt/CMakeLists.txt b/src/apps/marble-qt/CMakeLists.txt --- a/src/apps/marble-qt/CMakeLists.txt +++ b/src/apps/marble-qt/CMakeLists.txt @@ -30,6 +30,10 @@ ${Qt5Widgets_LIBRARIES} ${Qt5PrintSupport_LIBRARIES} ${Qt5Network_LIBRARIES} +#TODO +${Qt5WebEngineWidgets_LIBRARIES} +${Qt5WebEngine_LIBRARIES} + ${Qt5WebKitWidgets_LIBRARIES} ${Qt5WebKit_LIBRARIES} marbleui diff --git a/src/apps/marble-touch/CMakeLists.txt b/src/apps/marble-touch/CMakeLists.txt --- a/src/apps/marble-touch/CMakeLists.txt +++ b/src/apps/marble-touch/CMakeLists.txt @@ -25,6 +25,10 @@ ${Qt5Core_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5Network_LIBRARIES} + #TODO + ${Qt5WebEngineWidgets_LIBRARIES} + ${Qt5WebEngine_LIBRARIES} + ${Qt5WebKitWidgets_LIBRARIES} ${Qt5WebKit_LIBRARIES} ${MARBLEWIDGET} diff --git a/src/apps/marble-ui/CMakeLists.txt b/src/apps/marble-ui/CMakeLists.txt --- a/src/apps/marble-ui/CMakeLists.txt +++ b/src/apps/marble-ui/CMakeLists.txt @@ -18,6 +18,10 @@ ${Qt5Widgets_LIBRARIES} ${Qt5PrintSupport_LIBRARIES} ${Qt5Network_LIBRARIES} + #TODO + ${Qt5WebEngineWidgets_LIBRARIES} + ${Qt5WebEngine_LIBRARIES} + ${Qt5WebKitWidgets_LIBRARIES} ${Qt5WebKit_LIBRARIES} ${MARBLEWIDGET}) diff --git a/src/lib/marble/CMakeLists.txt b/src/lib/marble/CMakeLists.txt --- a/src/lib/marble/CMakeLists.txt +++ b/src/lib/marble/CMakeLists.txt @@ -23,6 +23,9 @@ ${CMAKE_CURRENT_SOURCE_DIR}/osm ${CMAKE_CURRENT_SOURCE_DIR}/cloudsync ${CMAKE_SOURCE_DIR}/src/lib/astro + #TODO + ${Qt5WebEngineWidgets_INCLUDE_DIRS} + ${Qt5WebKitWidgets_INCLUDE_DIRS} ${Qt5Xml_INCLUDE_DIRS} ${Qt5Concurrent_INCLUDE_DIRS} @@ -373,6 +376,9 @@ ${Qt5Widgets_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5WebKitWidgets_LIBRARIES} +#TODO +${Qt5WebEngineWidgets_LIBRARIES} + ${Qt5Svg_LIBRARIES} ${Qt5Script_LIBRARIES} ${Qt5Quick_LIBRARIES} diff --git a/src/lib/marble/LegendWidget.ui b/src/lib/marble/LegendWidget.ui --- a/src/lib/marble/LegendWidget.ui +++ b/src/lib/marble/LegendWidget.ui @@ -28,7 +28,7 @@ MarbleLegendBrowser - QWebView + QWebEngineView
MarbleLegendBrowser.h
diff --git a/src/lib/marble/MarbleLegendBrowser.h b/src/lib/marble/MarbleLegendBrowser.h --- a/src/lib/marble/MarbleLegendBrowser.h +++ b/src/lib/marble/MarbleLegendBrowser.h @@ -60,7 +60,6 @@ private Q_SLOTS: void initTheme(); void loadLegend(); - void injectCheckBoxChecker(); void openLinkExternally( const QUrl &url ); protected: diff --git a/src/lib/marble/MarbleLegendBrowser.cpp b/src/lib/marble/MarbleLegendBrowser.cpp --- a/src/lib/marble/MarbleLegendBrowser.cpp +++ b/src/lib/marble/MarbleLegendBrowser.cpp @@ -29,8 +29,9 @@ #include #ifndef MARBLE_NO_WEBKIT -#include -#include + //TODO + #include + #include #endif #include @@ -77,11 +78,14 @@ #endif // Q_WS_MAEMO_5 #ifndef MARBLE_NO_WEBKIT - QWebFrame *frame = page()->mainFrame(); - connect(frame, SIGNAL(javaScriptWindowObjectCleared()), - this, SLOT(injectCheckBoxChecker())); - page()->setLinkDelegationPolicy( QWebPage::DelegateAllLinks ); - connect( this, SIGNAL(linkClicked(QUrl)), this, SLOT(openLinkExternally(QUrl)) ); +//TODO: not yet tested + QWebChannel *channel = new QWebChannel(); + channel->registerObject("Marble", this); + page()->setWebChannel(channel); + +//TODO: no easy way to delegate links +// page()->setLinkDelegationPolicy( QWebEnginePage::DelegateAllLinks ); +// connect( this, SIGNAL(linkClicked(QUrl)), this, SLOT(openLinkExternally(QUrl)) ); #endif } @@ -179,11 +183,13 @@ // Set the html string in the QTextBrowser. setHtml(finalHtml, baseUrl); - QTextDocument *document = new QTextDocument(page()->mainFrame()->toHtml()); - d->m_marbleModel->setLegend( document ); + page()->toHtml([=]( QString document ) { + d->m_marbleModel->setLegend( new QTextDocument(document) ); + }); #endif } +/* void MarbleLegendBrowser::injectCheckBoxChecker() { #ifndef MARBLE_NO_WEBKIT @@ -191,6 +197,7 @@ frame->addToJavaScriptWindowObject( "Marble", this ); #endif } +*/ void MarbleLegendBrowser::openLinkExternally( const QUrl &url ) { @@ -203,7 +210,7 @@ bool MarbleLegendBrowser::event( QEvent * event ) { - // "Delayed initialization": legend gets created only + // "Delayed initialization": legend gets created only if ( event->type() == QEvent::Show ) { loadLegend(); return true; @@ -386,37 +393,41 @@ void MarbleLegendBrowser::setCheckedProperty( const QString& name, bool checked ) { #ifndef MARBLE_NO_WEBKIT - QWebElement box = page()->mainFrame()->findFirstElement("input[name="+name+']'); - if (!box.isNull()) { - if (checked != d->m_checkBoxMap[name]) { - d->m_checkBoxMap[name] = checked; - emit toggledShowProperty( name, checked ); - } - } - update(); +//TODO: No api to support extracting DOM elements. +// QWebElement box = page()->mainFrame()->findFirstElement("input[name="+name+']'); +// if (!box.isNull()) { +// if (checked != d->m_checkBoxMap[name]) { +// d->m_checkBoxMap[name] = checked; +// emit toggledShowProperty( name, checked ); +// } +// } +// +// update(); #endif } void MarbleLegendBrowser::setRadioCheckedProperty( const QString& value, const QString& name , bool checked ) { #ifndef MARBLE_NO_WEBKIT - QWebElement box = page()->mainFrame()->findFirstElement("input[value="+value+']'); - QWebElementCollection boxes = page()->mainFrame()->findAllElements("input[name="+name+']'); - QString currentValue=""; - for(int i=0; im_checkBoxMap[currentValue]=false; - emit toggledShowProperty( currentValue, false ); - } - if (!box.isNull()) { - if (checked != d->m_checkBoxMap[value]) { - d->m_checkBoxMap[value] = checked; - emit toggledShowProperty( value, checked ); - } - } - update(); +//TODO: No api to support extracting DOM elements. +// QWebElement box = page()->mainFrame()->findFirstElement("input[value="+value+']'); +// QWebElementCollection boxes = page()->mainFrame()->findAllElements("input[name="+name+']'); +// QString currentValue=""; +// for(int i=0; im_checkBoxMap[currentValue]=false; +// emit toggledShowProperty( currentValue, false ); +// } +// if (!box.isNull()) { +// if (checked != d->m_checkBoxMap[value]) { +// d->m_checkBoxMap[value] = checked; +// emit toggledShowProperty( value, checked ); +// } +// } + +// update(); #endif } diff --git a/src/lib/marble/MarbleWebView.h b/src/lib/marble/MarbleWebView.h --- a/src/lib/marble/MarbleWebView.h +++ b/src/lib/marble/MarbleWebView.h @@ -11,23 +11,27 @@ #ifndef MARBLEWEBVIEW_H #define MARBLEWEBVIEW_H -#include +#include #include "marble_export.h" -class MARBLE_EXPORT MarbleWebView : public QWebView +class MARBLE_EXPORT MarbleWebView : public QWebEngineView { Q_OBJECT public: explicit MarbleWebView(QWidget *parent = 0); protected: + bool event(QEvent *); void contextMenuEvent(QContextMenuEvent *event); void keyPressEvent(QKeyEvent *event); private Q_SLOTS: void copySelectedText(); +Q_SIGNALS: + void updateFinished(); + private: QMenu *m_contextMenu; QAction *m_copyAction; diff --git a/src/lib/marble/MarbleWebView.cpp b/src/lib/marble/MarbleWebView.cpp --- a/src/lib/marble/MarbleWebView.cpp +++ b/src/lib/marble/MarbleWebView.cpp @@ -16,7 +16,7 @@ #include MarbleWebView::MarbleWebView(QWidget *parent) : - QWebView(parent), + QWebEngineView(parent), m_contextMenu(new QMenu(this)), m_copyAction(new QAction(this)) { @@ -28,6 +28,7 @@ this, SLOT(copySelectedText())); m_contextMenu->addAction(m_copyAction); setContextMenuPolicy(Qt::DefaultContextMenu); + } void MarbleWebView::contextMenuEvent(QContextMenuEvent *event) @@ -52,7 +53,16 @@ return; } - QWebView::keyPressEvent(event); + QWebEngineView::keyPressEvent(event); +} + +bool MarbleWebView::event(QEvent* e) +{ + if (e->type() == QEvent::UpdateRequest) + { + emit updateFinished(); + } + return QWebEngineView::event(e); } #include "moc_MarbleWebView.cpp" diff --git a/src/lib/marble/PopupItem.h b/src/lib/marble/PopupItem.h --- a/src/lib/marble/PopupItem.h +++ b/src/lib/marble/PopupItem.h @@ -123,6 +123,8 @@ void clearHistory(); + void setVisible(bool visible); + private Q_SLOTS: /** * @brief Marks cache as dirty and tells the world its need for repainting. @@ -164,6 +166,8 @@ */ void goBack(); + void loadFinished(bool status); + protected: void paint( QPainter *painter ); @@ -183,6 +187,9 @@ QColor m_backColor; bool m_needMouseRelease; QUrl m_baseUrl; + + bool m_waitingForPageLoad; + bool m_toBeVisible; }; } diff --git a/src/lib/marble/PopupItem.cpp b/src/lib/marble/PopupItem.cpp --- a/src/lib/marble/PopupItem.cpp +++ b/src/lib/marble/PopupItem.cpp @@ -17,8 +17,8 @@ #ifdef MARBLE_NO_WEBKIT #include "NullMarbleWebView.h" #else -#include -#include +#include +#include #include "MarbleWebView.h" #endif @@ -46,13 +46,17 @@ m_widget( new QWidget ), m_textColor( QColor(Qt::black) ), m_backColor( QColor(Qt::white) ), - m_needMouseRelease(false) + m_needMouseRelease( false ), + m_waitingForPageLoad( false ), + m_toBeVisible( false ) { setCacheMode( ItemCoordinateCache ); setVisible( false ); setSize( QSizeF( 240.0, 320.0 ) ); m_ui.setupUi( m_widget ); + m_widget->setAttribute(Qt::WA_NativeWindow, true); + m_widget->setAttribute(Qt::WA_DontCreateNativeAncestors, true); m_ui.goBackButton->setVisible( false ); connect( m_ui.goBackButton, SIGNAL(clicked()), this, SLOT(goBack()) ); @@ -67,21 +71,19 @@ m_widget->setAttribute( Qt::WA_NoSystemBackground, true ); QPalette palette = m_ui.webView->palette(); palette.setBrush(QPalette::Base, Qt::transparent); - m_ui.webView->setPalette(palette); #ifndef MARBLE_NO_WEBKIT - m_ui.webView->page()->setPalette(palette); + m_ui.webView->setPalette( palette ); #endif m_ui.webView->setAttribute(Qt::WA_OpaquePaintEvent, false); - m_ui.webView->setUrl( QUrl( "about:blank" ) ); - connect( m_ui.webView, SIGNAL(titleChanged(QString)), m_ui.titleText, SLOT(setText(QString)) ); - connect( m_ui.webView, SIGNAL(urlChanged(QUrl)), this, SLOT(updateBackButton()) ); + connect( m_ui.webView->page(), SIGNAL(titleChanged(QString)), m_ui.titleText, SLOT(setText(QString)) ); + connect( m_ui.webView->page(), SIGNAL(urlChanged(QUrl)), this, SLOT(updateBackButton()) ); connect( m_ui.hideButton, SIGNAL(clicked()), this, SIGNAL(hide()) ); -#ifndef MARBLE_NO_WEBKIT // Update the popupitem on changes while loading the webpage - connect( m_ui.webView->page(), SIGNAL(repaintRequested(QRect)), this, SLOT(requestUpdate()) ); -#endif + connect(m_ui.webView, SIGNAL(loadFinished(bool)), this, SLOT(loadFinished(bool))); + m_ui.webView->setUrl( QUrl( "about:blank" ) ); + m_ui.webView->setStyleSheet("body { overflow:hidden; }"); } PopupItem::~PopupItem() @@ -101,17 +103,16 @@ void PopupItem::setUrl( const QUrl &url ) { - m_ui.webView->setUrl( url ); - setVisible( true ); + m_ui.webView->load(url); QPalette palette = m_ui.webView->palette(); - palette.setBrush(QPalette::Base, Qt::transparent); - m_ui.webView->setPalette(palette); + palette.setBrush( QPalette::Base, Qt::transparent ); #ifndef MARBLE_NO_WEBKIT - m_ui.webView->page()->setPalette(palette); + m_ui.webView->setPalette(palette); #endif m_ui.webView->setAttribute(Qt::WA_OpaquePaintEvent, false); + m_waitingForPageLoad = true; requestUpdate(); } @@ -119,11 +120,41 @@ { m_content = html; m_baseUrl = baseUrl; -#ifndef MARBLE_NO_WEBKIT m_ui.webView->setHtml( html, baseUrl ); -#endif + this->m_waitingForPageLoad = true; + requestUpdate(); +} + +void PopupItem::loadFinished(bool status) +{ + if ( !status ) { + return; + } requestUpdate(); + if ( m_waitingForPageLoad ) { + m_waitingForPageLoad = false; + } + if ( m_toBeVisible ) { + m_toBeVisible = false; + MarbleGraphicsItem::setVisible( true ); + } +} + +void PopupItem::setVisible(bool visible) +{ + if (!visible) { + MarbleGraphicsItem::setVisible( false ); + return; + } + + if (!this->visible()) { + if (m_waitingForPageLoad) { + m_toBeVisible = true; + } else { + MarbleGraphicsItem::setVisible( visible ); + } + } } void PopupItem::setTextColor(const QColor &color) @@ -165,10 +196,12 @@ void PopupItem::paint( QPainter *painter ) { + //TODO: It does not render the web page, but links can be clicked. QRect popupRect; QPixmap image = pixmap("marble/webpopup/arrow2_vertical_topright"); if ( alignment() & Qt::AlignRight ) { + popupRect.setRect( image.width() - 13, -10, size().width() - ( image.width() - 23 ), size().height() + 20 ); @@ -185,6 +218,7 @@ painter->drawPixmap( 0, size().height() / 2, image ); } m_widget->render( painter, QPoint( image.width() - 3, 0 ), QRegion() ); + } else if ( alignment() & Qt::AlignLeft ) { popupRect.setRect( -10, -10, size().width() - ( image.width() - 23 ), @@ -234,7 +268,8 @@ } } m_widget->setFixedSize( popupRect.width() - 20, - popupRect.height() - 20 ); + popupRect.height() - 20 ); + } bool PopupItem::eventFilter( QObject *object, QEvent *e ) @@ -343,9 +378,11 @@ void PopupItem::clearHistory() { m_content.clear(); - m_ui.webView->setUrl( QUrl( "about:blank" ) ); + m_ui.webView->page()->setUrl( QUrl( "about:blank" ) ); + m_waitingForPageLoad = true; #ifndef MARBLE_NO_WEBKIT - m_ui.webView->history()->clear(); + m_ui.webView->page()->history()->clear(); + m_ui.webView->page()->history(); #endif } @@ -359,12 +396,14 @@ { #ifndef QT_NO_PRINTER #ifndef MARBLE_NO_WEBKIT - QPrinter printer; - QPointer dialog = new QPrintDialog(&printer); - if (dialog->exec() == QPrintDialog::Accepted) { - m_ui.webView->print(&printer); - } - delete dialog; + +//TODO: No api for printing the web page. +// QPrinter printer; +// QPointer dialog = new QPrintDialog(&printer); +// if (dialog->exec() == QPrintDialog::Accepted) { +// m_ui.webView->print(&printer); +// } +// delete dialog; #endif #endif } @@ -372,10 +411,10 @@ void PopupItem::updateBackButton() { #ifndef MARBLE_NO_WEBKIT - bool const hasHistory = m_ui.webView->history()->count() > 1; - bool const previousIsHtml = !m_content.isEmpty() && m_ui.webView->history()->currentItemIndex() == 1; - bool const atStart = m_ui.webView->history()->currentItemIndex() <= 1; - bool const currentIsHtml = m_ui.webView->url() == QUrl( "about:blank" ); + bool const hasHistory = m_ui.webView->page()->history()->count() > 1; + bool const previousIsHtml = !m_content.isEmpty() && m_ui.webView->page()->history()->currentItemIndex() == 1; + bool const atStart = m_ui.webView->page()->history()->currentItemIndex() <= 1; + bool const currentIsHtml = m_ui.webView->page()->url() == QUrl( "about:blank" ); m_ui.goBackButton->setVisible( hasHistory && !currentIsHtml && ( previousIsHtml || !atStart ) ); #endif } @@ -383,8 +422,8 @@ void PopupItem::goBack() { #ifndef MARBLE_NO_WEBKIT - if ( m_ui.webView->history()->currentItemIndex() == 1 && !m_content.isEmpty() ) { - m_ui.webView->setHtml( m_content, m_baseUrl ); + if ( m_ui.webView->page()->history()->currentItemIndex() == 1 && !m_content.isEmpty() ) { + m_ui.webView->page()->setHtml( m_content, m_baseUrl ); } else { m_ui.webView->back(); } @@ -395,9 +434,10 @@ QPixmap PopupItem::pixmap( const QString &imageId ) const { QPixmap result; + if ( !QPixmapCache::find( imageId, result ) ) { - QImage bottom = QImage( QString( ":/%1_shadow.png" ).arg( imageId) ); - QImage top = QImage( QString( ":/%1.png" ).arg( imageId) ); + QImage bottom = QImage( QString( ":/%1_shadow.png" ).arg( imageId ) ); + QImage top = QImage( QString( ":/%1.png" ).arg( imageId ) ); colorize( top, m_backColor ); QPainter painter( &bottom ); painter.drawImage( QPoint(0,0), top ); diff --git a/src/lib/marble/TinyWebBrowser.h b/src/lib/marble/TinyWebBrowser.h --- a/src/lib/marble/TinyWebBrowser.h +++ b/src/lib/marble/TinyWebBrowser.h @@ -16,7 +16,7 @@ #include #include #include -#include +#include // Marble #include "marble_export.h" @@ -32,7 +32,7 @@ * disabled per default and instead opens every link in the default web * browser of the user. */ -class MARBLE_EXPORT TinyWebBrowser : public QWebView +class MARBLE_EXPORT TinyWebBrowser : public QWebEngineView { Q_OBJECT @@ -48,7 +48,7 @@ void statusMessage( QString ); protected: - QWebView *createWindow( QWebPage::WebWindowType type ); + QWebEngineView *createWindow( QWebEnginePage::WebWindowType type ); private Q_SLOTS: void openExternalLink( QUrl ); diff --git a/src/lib/marble/TinyWebBrowser.cpp b/src/lib/marble/TinyWebBrowser.cpp --- a/src/lib/marble/TinyWebBrowser.cpp +++ b/src/lib/marble/TinyWebBrowser.cpp @@ -45,20 +45,23 @@ } TinyWebBrowser::TinyWebBrowser( QWidget* parent ) - : QWebView( parent ), + : QWebEngineView( parent ), d( 0 ) { connect( this, SIGNAL(statusBarMessage(QString)), this, SIGNAL(statusMessage(QString)) ); - page()->setLinkDelegationPolicy( QWebPage::DelegateAllLinks ); - connect( this, SIGNAL(linkClicked(QUrl)), +//TODO: No easy way to delegate links +// page()->setLinkDelegationPolicy( QWebPage::DelegateAllLinks ); + connect( this, SIGNAL(urlChanged(QUrl)), this, SLOT(openExternalLink(QUrl)) ); + connect( this, SIGNAL(titleChanged(QString)), this, SLOT(setWindowTitle(QString)) ); - pageAction( QWebPage::OpenLinkInNewWindow )->setEnabled( false ); - pageAction( QWebPage::OpenLinkInNewWindow )->setVisible( false ); + //TODO: + //pageAction( QWebEnginePage::OpenLinkInNewWindow )->setEnabled( false ); + //pageAction( QWebEnginePage::OpenLinkInNewWindow )->setVisible( false ); } TinyWebBrowser::~TinyWebBrowser() @@ -72,6 +75,7 @@ QUrl url = relativeUrl; if ( url.isRelative() ) url = QUrl( guessWikipediaDomain() ).resolved( url ); + qDebug() << "setWikipediaPath()"; load( url ); } @@ -82,18 +86,20 @@ QPointer dlg = new QPrintDialog( &printer, this ); if ( dlg->exec() ) - QWebView::print( &printer ); + //TODO: + //QWebEngineView::print( &printer ); delete dlg; #endif } -QWebView *TinyWebBrowser::createWindow( QWebPage::WebWindowType type ) +QWebEngineView *TinyWebBrowser::createWindow( QWebEnginePage::WebWindowType type ) { TinyWebBrowser *view = new TinyWebBrowser( this ); - if ( type == QWebPage::WebModalDialog ) { - view->setWindowModality( Qt::WindowModal ); - } +//TODO: +// if ( type == QWebEnginePage::WebModalDialog ) { +// view->setWindowModality( Qt::WindowModal ); +// } return view; } diff --git a/src/lib/marble/WebPopupWidget.ui b/src/lib/marble/WebPopupWidget.ui --- a/src/lib/marble/WebPopupWidget.ui +++ b/src/lib/marble/WebPopupWidget.ui @@ -18,9 +18,6 @@ - - - @@ -44,9 +41,15 @@ :/marble/webpopup/icon-print.png:/marble/webpopup/icon-print.png + + QToolButton::DelayedPopup + true + + Qt::NoArrow + @@ -63,6 +66,9 @@ + + + diff --git a/src/lib/marble/cloudsync/RouteItemDelegate.cpp b/src/lib/marble/cloudsync/RouteItemDelegate.cpp --- a/src/lib/marble/cloudsync/RouteItemDelegate.cpp +++ b/src/lib/marble/cloudsync/RouteItemDelegate.cpp @@ -5,7 +5,7 @@ #ifdef MARBLE_NO_WEBKIT #include #else -#include +#include #endif #include diff --git a/src/lib/marble/graphicsview/MarbleGraphicsItem.cpp b/src/lib/marble/graphicsview/MarbleGraphicsItem.cpp --- a/src/lib/marble/graphicsview/MarbleGraphicsItem.cpp +++ b/src/lib/marble/graphicsview/MarbleGraphicsItem.cpp @@ -66,7 +66,7 @@ p()->m_pixmap = QPixmap( neededPixmapSize ); } else { - mDebug() << "Warning: Invalid pixmap size suggested: " << d->m_size; + mDebug() << "Warnter an UpdateRequest event has been received are you guaranteed to have access to the page in the view()->render function.ing: Invalid pixmap size suggested: " << d->m_size; } } diff --git a/src/lib/marble/layers/PopupLayer.cpp b/src/lib/marble/layers/PopupLayer.cpp --- a/src/lib/marble/layers/PopupLayer.cpp +++ b/src/lib/marble/layers/PopupLayer.cpp @@ -149,7 +149,7 @@ } } - setVisible( true ); + setVisible( true ); } void PopupLayer::setCoordinates( const GeoDataCoordinates &coordinates , Qt::Alignment alignment ) diff --git a/src/plugins/render/opencachingcom/CacheDetailsDialog.ui b/src/plugins/render/opencachingcom/CacheDetailsDialog.ui --- a/src/plugins/render/opencachingcom/CacheDetailsDialog.ui +++ b/src/plugins/render/opencachingcom/CacheDetailsDialog.ui @@ -162,7 +162,7 @@ QWebView QWidget -
QtWebKit/QWebView
+
QWebEngineView
Marble::MarbleWebView diff --git a/src/plugins/render/opencachingcom/OpenCachingComItem.cpp b/src/plugins/render/opencachingcom/OpenCachingComItem.cpp --- a/src/plugins/render/opencachingcom/OpenCachingComItem.cpp +++ b/src/plugins/render/opencachingcom/OpenCachingComItem.cpp @@ -207,7 +207,8 @@ fillDialogTabs(); } - m_ui->textDescription->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); + //TODO: No api for setting link delegation. + // m_ui->textDescription->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); m_ui->textLogs->setOpenExternalLinks(true); connect( ui.buttonClose, SIGNAL(clicked()), &dialog, SLOT(close()) ); diff --git a/src/plugins/render/opendesktop/CMakeLists.txt b/src/plugins/render/opendesktop/CMakeLists.txt --- a/src/plugins/render/opendesktop/CMakeLists.txt +++ b/src/plugins/render/opendesktop/CMakeLists.txt @@ -6,7 +6,12 @@ ${QT_INCLUDE_DIR} ) -INCLUDE_DIRECTORIES(${Qt5WebKitWidgets_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES( + #TODO + ${Qt5WebEngineWidgets_INCLUDE_DIRS} + + ${Qt5WebKitWidgets_INCLUDE_DIRS} +) set( my_SRCS OpenDesktopPlugin.cpp diff --git a/src/plugins/render/photo/CMakeLists.txt b/src/plugins/render/photo/CMakeLists.txt --- a/src/plugins/render/photo/CMakeLists.txt +++ b/src/plugins/render/photo/CMakeLists.txt @@ -6,7 +6,12 @@ ${QT_INCLUDE_DIR} ) -INCLUDE_DIRECTORIES(${Qt5WebKitWidgets_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES( + #TODO + ${Qt5WebEngineWidgets_INCLUDE_DIRS} + + ${Qt5WebKitWidgets_INCLUDE_DIRS} +) set( photo_SRCS PhotoPlugin.cpp PhotoPluginModel.cpp diff --git a/src/plugins/render/weather/CMakeLists.txt b/src/plugins/render/weather/CMakeLists.txt --- a/src/plugins/render/weather/CMakeLists.txt +++ b/src/plugins/render/weather/CMakeLists.txt @@ -6,7 +6,12 @@ ${QT_INCLUDE_DIR} ) -INCLUDE_DIRECTORIES(${Qt5WebKitWidgets_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES( + #TODO + ${Qt5WebEngineWidgets_INCLUDE_DIRS} + + ${Qt5WebKitWidgets_INCLUDE_DIRS} +) set( weather_SRCS WeatherData.cpp WeatherItem.cpp diff --git a/src/plugins/render/wikipedia/CMakeLists.txt b/src/plugins/render/wikipedia/CMakeLists.txt --- a/src/plugins/render/wikipedia/CMakeLists.txt +++ b/src/plugins/render/wikipedia/CMakeLists.txt @@ -6,7 +6,12 @@ ${QT_INCLUDE_DIR} ) -INCLUDE_DIRECTORIES(${Qt5WebKitWidgets_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES( + #TODO + ${Qt5WebEngineWidgets_INCLUDE_DIRS} + + ${Qt5WebKitWidgets_INCLUDE_DIRS} +) set( wikipedia_SRCS WikipediaPlugin.cpp WikipediaModel.cpp diff --git a/src/plugins/render/wikipedia/WikipediaItem.cpp b/src/plugins/render/wikipedia/WikipediaItem.cpp --- a/src/plugins/render/wikipedia/WikipediaItem.cpp +++ b/src/plugins/render/wikipedia/WikipediaItem.cpp @@ -17,7 +17,7 @@ #include #include #include -#include +#include // Marble #include "MarbleDebug.h" diff --git a/src/plugins/runner/cyclestreets/CMakeLists.txt b/src/plugins/runner/cyclestreets/CMakeLists.txt --- a/src/plugins/runner/cyclestreets/CMakeLists.txt +++ b/src/plugins/runner/cyclestreets/CMakeLists.txt @@ -7,6 +7,9 @@ ) INCLUDE_DIRECTORIES( + #TODO + ${Qt5WebEngineWidgets_INCLUDE_DIRS} + ${Qt5WebKitWidgets_INCLUDE_DIRS} ${Qt5Xml_INCLUDE_DIRS} ) diff --git a/src/plugins/runner/mapquest/CMakeLists.txt b/src/plugins/runner/mapquest/CMakeLists.txt --- a/src/plugins/runner/mapquest/CMakeLists.txt +++ b/src/plugins/runner/mapquest/CMakeLists.txt @@ -7,6 +7,9 @@ ) INCLUDE_DIRECTORIES( + #TODO + ${Qt5WebEngineWidgets_INCLUDE_DIRS} + ${Qt5WebKitWidgets_INCLUDE_DIRS} ${Qt5Xml_INCLUDE_DIRS} ) diff --git a/src/plugins/runner/nominatim-reversegeocoding/CMakeLists.txt b/src/plugins/runner/nominatim-reversegeocoding/CMakeLists.txt --- a/src/plugins/runner/nominatim-reversegeocoding/CMakeLists.txt +++ b/src/plugins/runner/nominatim-reversegeocoding/CMakeLists.txt @@ -7,6 +7,9 @@ ) INCLUDE_DIRECTORIES( + #TODO + ${Qt5WebEngineWidgets_INCLUDE_DIRS} + ${Qt5WebKitWidgets_INCLUDE_DIRS} ${Qt5Xml_INCLUDE_DIRS} ) diff --git a/src/plugins/runner/nominatim-search/CMakeLists.txt b/src/plugins/runner/nominatim-search/CMakeLists.txt --- a/src/plugins/runner/nominatim-search/CMakeLists.txt +++ b/src/plugins/runner/nominatim-search/CMakeLists.txt @@ -7,6 +7,9 @@ ) INCLUDE_DIRECTORIES( + #TODO + ${Qt5WebEngineWidgets_INCLUDE_DIRS} + ${Qt5WebKitWidgets_INCLUDE_DIRS} ${Qt5Xml_INCLUDE_DIRS} ) diff --git a/src/plugins/runner/open-source-routing-machine/CMakeLists.txt b/src/plugins/runner/open-source-routing-machine/CMakeLists.txt --- a/src/plugins/runner/open-source-routing-machine/CMakeLists.txt +++ b/src/plugins/runner/open-source-routing-machine/CMakeLists.txt @@ -7,6 +7,9 @@ ) INCLUDE_DIRECTORIES( + #TODO + ${Qt5WebEngineWidgets_INCLUDE_DIRS} + ${Qt5WebKitWidgets_INCLUDE_DIRS} ${Qt5Xml_INCLUDE_DIRS} ) diff --git a/src/plugins/runner/openrouteservice/CMakeLists.txt b/src/plugins/runner/openrouteservice/CMakeLists.txt --- a/src/plugins/runner/openrouteservice/CMakeLists.txt +++ b/src/plugins/runner/openrouteservice/CMakeLists.txt @@ -7,6 +7,9 @@ ) INCLUDE_DIRECTORIES( + #TODO + ${Qt5WebEngineWidgets_INCLUDE_DIRS} + ${Qt5WebKitWidgets_INCLUDE_DIRS} ${Qt5Xml_INCLUDE_DIRS} ) diff --git a/src/plugins/runner/yours/CMakeLists.txt b/src/plugins/runner/yours/CMakeLists.txt --- a/src/plugins/runner/yours/CMakeLists.txt +++ b/src/plugins/runner/yours/CMakeLists.txt @@ -7,6 +7,9 @@ ) INCLUDE_DIRECTORIES( + #TODO + ${Qt5WebEngineWidgets_INCLUDE_DIRS} + ${Qt5WebKitWidgets_INCLUDE_DIRS} ${Qt5Xml_INCLUDE_DIRS} )