[SCM] WebKit Debian packaging branch, debian/experimental, updated. debian/1.3.8-1-1049-g2e11a8e
benjamin.poulain at nokia.com
benjamin.poulain at nokia.com
Fri Jan 21 14:59:41 UTC 2011
The following commit has been merged in the debian/experimental branch:
commit d3d4bc7aaa9e78efa5685173e23b5d0054bdd82d
Author: benjamin.poulain at nokia.com <benjamin.poulain at nokia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jan 6 02:04:34 2011 +0000
2011-01-05 Benjamin Poulain <benjamin.poulain at nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] [WK2] Add the possibility to open window from the WebProcess in Minibrowser
https://bugs.webkit.org/show_bug.cgi?id=51951
Set a function to QWKPage::setCreateNewPageFunction() in Minibrowser so there is a way
to create new window from WebKit.
* MiniBrowser/qt/BrowserWindow.cpp:
(newPageFunction):
(BrowserWindow::BrowserWindow):
(BrowserWindow::page): Added to avoid the indirect access to QWKPage spread in the class
(BrowserWindow::newWindow):
(BrowserWindow::updateUserAgentList):
(BrowserWindow::showUserAgentDialog):
* MiniBrowser/qt/BrowserWindow.h: Add the global variable backingStoreTypeForNewWindow to
define the type of the backing store used for new windows.
* MiniBrowser/qt/main.cpp:
(main):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75124 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index c11028b..d0337bc 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,3 +1,25 @@
+2011-01-05 Benjamin Poulain <benjamin.poulain at nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] [WK2] Add the possibility to open window from the WebProcess in Minibrowser
+ https://bugs.webkit.org/show_bug.cgi?id=51951
+
+ Set a function to QWKPage::setCreateNewPageFunction() in Minibrowser so there is a way
+ to create new window from WebKit.
+
+ * MiniBrowser/qt/BrowserWindow.cpp:
+ (newPageFunction):
+ (BrowserWindow::BrowserWindow):
+ (BrowserWindow::page): Added to avoid the indirect access to QWKPage spread in the class
+ (BrowserWindow::newWindow):
+ (BrowserWindow::updateUserAgentList):
+ (BrowserWindow::showUserAgentDialog):
+ * MiniBrowser/qt/BrowserWindow.h: Add the global variable backingStoreTypeForNewWindow to
+ define the type of the backing store used for new windows.
+ * MiniBrowser/qt/main.cpp:
+ (main):
+
2011-01-05 Eric Seidel <eric at webkit.org>
Reviewed by Ojan Vafai.
diff --git a/Tools/MiniBrowser/qt/BrowserWindow.cpp b/Tools/MiniBrowser/qt/BrowserWindow.cpp
index 743c91a..be08cae 100644
--- a/Tools/MiniBrowser/qt/BrowserWindow.cpp
+++ b/Tools/MiniBrowser/qt/BrowserWindow.cpp
@@ -28,13 +28,20 @@
#include "BrowserWindow.h"
-BrowserWindow::BrowserWindow(QGraphicsWKView::BackingStoreType type)
- : m_backingStoreType(type)
+static QWKPage* newPageFunction(QWKPage*)
+{
+ BrowserWindow* window = new BrowserWindow();
+ return window->page();
+}
+
+QGraphicsWKView::BackingStoreType BrowserWindow::backingStoreTypeForNewWindow = QGraphicsWKView::Simple;
+
+BrowserWindow::BrowserWindow()
{
setAttribute(Qt::WA_DeleteOnClose);
m_menu = new QMenuBar();
- m_browser = new BrowserView(m_backingStoreType);
+ m_browser = new BrowserView(backingStoreTypeForNewWindow);
m_addressBar = new QLineEdit();
m_menu->addAction("New Window", this, SLOT(newWindow()));
@@ -51,10 +58,10 @@ BrowserWindow::BrowserWindow(QGraphicsWKView::BackingStoreType type)
connect(m_browser->view(), SIGNAL(urlChanged(const QUrl&)), SLOT(urlChanged(const QUrl&)));
QToolBar* bar = addToolBar("Navigation");
- bar->addAction(m_browser->view()->page()->action(QWKPage::Back));
- bar->addAction(m_browser->view()->page()->action(QWKPage::Forward));
- bar->addAction(m_browser->view()->page()->action(QWKPage::Reload));
- bar->addAction(m_browser->view()->page()->action(QWKPage::Stop));
+ bar->addAction(page()->action(QWKPage::Back));
+ bar->addAction(page()->action(QWKPage::Forward));
+ bar->addAction(page()->action(QWKPage::Reload));
+ bar->addAction(page()->action(QWKPage::Stop));
bar->addWidget(m_addressBar);
this->setMenuBar(m_menu);
@@ -65,6 +72,8 @@ BrowserWindow::BrowserWindow(QGraphicsWKView::BackingStoreType type)
QShortcut* selectAddressBar = new QShortcut(Qt::CTRL | Qt::Key_L, this);
connect(selectAddressBar, SIGNAL(activated()), this, SLOT(openLocation()));
+ page()->setCreateNewPageFunction(newPageFunction);
+
resize(960, 640);
show();
}
@@ -75,9 +84,14 @@ void BrowserWindow::load(const QString& url)
m_browser->load(url);
}
+QWKPage* BrowserWindow::page()
+{
+ return m_browser->view()->page();
+}
+
BrowserWindow* BrowserWindow::newWindow(const QString& url)
{
- BrowserWindow* window = new BrowserWindow(m_backingStoreType);
+ BrowserWindow* window = new BrowserWindow;
window->load(url);
return window;
}
@@ -125,8 +139,6 @@ void BrowserWindow::urlChanged(const QUrl& url)
void BrowserWindow::updateUserAgentList()
{
- QWKPage* page = m_browser->view()->page();
-
QFile file(":/useragentlist.txt");
if (file.open(QIODevice::ReadOnly)) {
@@ -139,9 +151,9 @@ void BrowserWindow::updateUserAgentList()
}
Q_ASSERT(!m_userAgentList.isEmpty());
-
- if (!(page->customUserAgent().isEmpty() || m_userAgentList.contains(page->customUserAgent())))
- m_userAgentList << page->customUserAgent();
+ QWKPage* wkPage = page();
+ if (!(wkPage->customUserAgent().isEmpty() || m_userAgentList.contains(wkPage->customUserAgent())))
+ m_userAgentList << wkPage->customUserAgent();
}
void BrowserWindow::showUserAgentDialog()
@@ -160,7 +172,7 @@ void BrowserWindow::showUserAgentDialog()
combo->insertItems(0, m_userAgentList);
layout->addWidget(combo);
- int index = combo->findText(m_browser->view()->page()->customUserAgent());
+ int index = combo->findText(page()->customUserAgent());
combo->setCurrentIndex(index);
QDialogButtonBox* buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel
@@ -170,7 +182,7 @@ void BrowserWindow::showUserAgentDialog()
layout->addWidget(buttonBox);
if (dialog.exec() && !combo->currentText().isEmpty())
- m_browser->view()->page()->setCustomUserAgent(combo->currentText());
+ page()->setCustomUserAgent(combo->currentText());
}
BrowserWindow::~BrowserWindow()
diff --git a/Tools/MiniBrowser/qt/BrowserWindow.h b/Tools/MiniBrowser/qt/BrowserWindow.h
index fe94d6b..0010fbe 100644
--- a/Tools/MiniBrowser/qt/BrowserWindow.h
+++ b/Tools/MiniBrowser/qt/BrowserWindow.h
@@ -38,10 +38,14 @@ class BrowserWindow : public QMainWindow {
Q_OBJECT
public:
- BrowserWindow(QGraphicsWKView::BackingStoreType);
+ BrowserWindow();
~BrowserWindow();
void load(const QString& url);
+ QWKPage* page();
+
+ static QGraphicsWKView::BackingStoreType backingStoreTypeForNewWindow;
+
public slots:
BrowserWindow* newWindow(const QString& url = "about:blank");
void openLocation();
@@ -60,7 +64,6 @@ private:
QMenuBar* m_menu;
QLineEdit* m_addressBar;
QStringList m_userAgentList;
- QGraphicsWKView::BackingStoreType m_backingStoreType;
};
#endif
diff --git a/Tools/MiniBrowser/qt/main.cpp b/Tools/MiniBrowser/qt/main.cpp
index 20f4ff5..8c987c5 100644
--- a/Tools/MiniBrowser/qt/main.cpp
+++ b/Tools/MiniBrowser/qt/main.cpp
@@ -53,7 +53,8 @@ int main(int argc, char** argv) {
args.append("http://www.google.com");
}
- BrowserWindow* window = new BrowserWindow(backingStoreTypeToUse);
+ BrowserWindow::backingStoreTypeForNewWindow = backingStoreTypeToUse;
+ BrowserWindow* window = new BrowserWindow;
window->load(args[0]);
for (int i = 1; i < args.size(); ++i)
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list