[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