summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-03-11 08:59:26 +0100
committerJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-03-11 08:59:26 +0100
commitf568e1a95de62392e3d1e53a885f44130592e698 (patch)
tree8dacb12c0d361060c84c23ec586fcc1ee8c952df
parent669a6a0d89becfa097b931a0b2fc19c755291399 (diff)
downloadbrowser-poc-f568e1a95de62392e3d1e53a885f44130592e698.tar.gz
Fixed API for screenshot function
-rw-r--r--browser/browserview.cpp31
-rw-r--r--browser/browserview.h8
-rw-r--r--testapp/qml/testapp/WebPageWindow.qml2
3 files changed, 12 insertions, 29 deletions
diff --git a/browser/browserview.cpp b/browser/browserview.cpp
index ad36dd9..7c45883 100644
--- a/browser/browserview.cpp
+++ b/browser/browserview.cpp
@@ -71,7 +71,7 @@ BrowserView::BrowserView(cachemanager *cm, userinput *uip)
connect(m_webview.page()->mainFrame(), SIGNAL (contentsSizeChanged(const QSize &)), this, SLOT (contentSizeChanged(const QSize&)));
connect(&m_webview, SIGNAL (iconChanged()), this, SIGNAL (onFaviconReceived()));
- connect(&m_inputHandler, SIGNAL (onInputText(QString, QString, int, int, int, int, int)),
+ connect(&m_inputHandler, SIGNAL (onInputText(QString, QString, int, int, int, int, int)),
this, SIGNAL (onInputText(QString, QString, int, int, int, int, int)));
connect(&m_inputHandler, SIGNAL(onScroll(uint,uint)), this, SLOT(scrollPositionChanged(uint,uint)));
connect(&m_inputHandler, SIGNAL(onSelect(const QString &, const conn::brw::SelectableOptionList &, bool)), this, SIGNAL(onSelect(const QString &, const conn::brw::SelectableOptionList &, bool)));
@@ -251,32 +251,23 @@ void BrowserView::getScrollPosition(uint &x, uint &y)
y = m_scrollPositionY;
}
-QString BrowserView::createScreenshot(QString url) {
- WebPageWaiter waiter;
- QWebPage wp;
- QSize renderSize(640,480);
+QString BrowserView::createScreenshot(QString directory) {
+ m_webview.page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
+ m_webview.page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
- connect(&wp, SIGNAL(loadFinished(bool)), &waiter, SLOT (loadFinished(void)));
-
- wp.mainFrame()->load(QUrl(url));
- wp.setViewportSize(renderSize);
- wp.mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
- wp.mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
-
- for (int i = 0; i < 100; i++) {
- waiter.finishedSem.tryAcquire(1,10);
- QCoreApplication::processEvents();
- }
-
- QImage *image = new QImage(renderSize,
+ QImage *image = new QImage(m_webview.page()->viewportSize(),
QImage::Format_ARGB32);
QPainter *painter = new QPainter(image);
- QTemporaryFile outFile("XXXXXX.png");
+ QTemporaryFile outFile(directory + "/XXXXXX.png");
outFile.setAutoRemove(false);
outFile.open();
- wp.mainFrame()->render(painter);
+ m_webview.page()->mainFrame()->render(painter);
painter->end();
+
+ m_webview.page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAsNeeded);
+ m_webview.page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAsNeeded);
+
image->save(&outFile, "PNG");
outFile.close();
return outFile.fileName();
diff --git a/browser/browserview.h b/browser/browserview.h
index edd3659..9773fcc 100644
--- a/browser/browserview.h
+++ b/browser/browserview.h
@@ -27,14 +27,6 @@
#include "browserpage.h"
#include "userinput.h"
-class WebPageWaiter : public QObject {
-Q_OBJECT
-public slots:
- void loadFinished() { finishedSem.release(1); }
-public:
- QSemaphore finishedSem;
-};
-
class InputHandler : public QObject {
Q_OBJECT
public:
diff --git a/testapp/qml/testapp/WebPageWindow.qml b/testapp/qml/testapp/WebPageWindow.qml
index 001700e..d2b8c22 100644
--- a/testapp/qml/testapp/WebPageWindow.qml
+++ b/testapp/qml/testapp/WebPageWindow.qml
@@ -482,7 +482,7 @@ Item {
anchors.bottom: parent.bottom
anchors.bottomMargin: 0
onClicked: {
- pageiconimage.source = browserinterface.getPageIcon(browserinterface.getUrl());
+ pageiconimage.source = browserinterface.getPageIcon("/tmp/");
}
}
}