diff options
author | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2014-01-15 19:10:22 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-22 08:45:25 +0100 |
commit | 1fcd7970e07a0ecab206224824d1c71488fc19e9 (patch) | |
tree | 7bc6ba73623a69aa303f1f4d5c075e8ef37ca45e /examples/widgets/browser/browsermainwindow.cpp | |
parent | 3fcd31f5bd86cb568b1ca4f4f5c7c12c6675dceb (diff) | |
download | qtwebengine-1fcd7970e07a0ecab206224824d1c71488fc19e9.tar.gz |
Implement QWebEnginePage::toHtml and toPlainText
Those methods are now made asynchronous and need to be given a
callback to handle the result.
Update the code in the browser and fancybrowser examples using
std::bind when using C++11 or tr1::bind with C++03 (which should be
available with compilers on platforms that we support).
Add a (currently failing) earlyToHtml test to make sure that an empty
page doesn't crash because of a possibly incomplete attachment of
the QtRenderViewObserver.
Change-Id: I3ab7cb6f25b91b584dd80df5e4e9ad1e3214348e
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Diffstat (limited to 'examples/widgets/browser/browsermainwindow.cpp')
-rw-r--r-- | examples/widgets/browser/browsermainwindow.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/examples/widgets/browser/browsermainwindow.cpp b/examples/widgets/browser/browsermainwindow.cpp index 9a2262314..ac8426d9a 100644 --- a/examples/widgets/browser/browsermainwindow.cpp +++ b/examples/widgets/browser/browsermainwindow.cpp @@ -71,6 +71,16 @@ #include <QtCore/QDebug> +#if __cplusplus >= 201103L +#include <functional> +using std::bind; +namespace placeholders = std::placeholders; +#else +#include <tr1/functional> +using std::tr1::bind; +namespace placeholders = std::tr1::placeholders; +#endif + BrowserMainWindow::BrowserMainWindow(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) , m_tabWidget(new TabWidget(this)) @@ -372,9 +382,7 @@ void BrowserMainWindow::setupMenu() #endif viewMenu->addSeparator(); -#if defined(QWEBENGINEPAGE_TOHTML) viewMenu->addAction(tr("Page S&ource"), this, SLOT(slotViewPageSource()), tr("Ctrl+Alt+U")); -#endif QAction *a = viewMenu->addAction(tr("&Full Screen"), this, SLOT(slotViewFullScreen(bool)), Qt::Key_F11); a->setCheckable(true); @@ -810,17 +818,16 @@ void BrowserMainWindow::slotViewFullScreen(bool makeFullScreen) void BrowserMainWindow::slotViewPageSource() { -#if defined(QWEBENGINEPAGE_TOHTML) if (!currentTab()) return; - QString markup = currentTab()->page()->toHtml(); - QPlainTextEdit *view = new QPlainTextEdit(markup); + QPlainTextEdit *view = new QPlainTextEdit; view->setWindowTitle(tr("Page Source of %1").arg(currentTab()->title())); view->setMinimumWidth(640); view->setAttribute(Qt::WA_DeleteOnClose); view->show(); -#endif + + currentTab()->page()->toHtml(bind(&QPlainTextEdit::setPlainText, view, placeholders::_1)); } void BrowserMainWindow::slotHome() |