2008-04-01 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
authorhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 1 Apr 2008 08:46:30 +0000 (08:46 +0000)
committerhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 1 Apr 2008 08:46:30 +0000 (08:46 +0000)
        Reviewed by Simon.

        * Do not store the QWebFrame associated with a ScrollView/FrameView
        in the WebCore::Widget.
        * Instead of asking the Widget for the QWebFrame use the QWebFramePrivate::core
        and QWebFramePrivate::kit function to convert from and to QWebFrame.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@31519 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/platform/Widget.h
WebCore/platform/qt/WidgetQt.cpp
WebKit/qt/Api/qwebframe.cpp
WebKit/qt/Api/qwebpage.cpp
WebKit/qt/ChangeLog

index bae74f3..0a9171b 100644 (file)
@@ -1,3 +1,17 @@
+2008-04-01  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
+
+        Reviewed by Simon.
+
+        * Do not store the QWebFrame associated with a ScrollView/FrameView
+        in the WebCore::Widget.
+        * Instead of asking the Widget for the QWebFrame use the QWebFramePrivate::core
+        and QWebFramePrivate::kit function to convert from and to QWebFrame.
+
+        * platform/Widget.h:
+        * platform/qt/WidgetQt.cpp:
+        (WebCore::WidgetPrivate::WidgetPrivate):
+        (WebCore::Widget::containingWindow):
+
 2008-04-01  Alice Liu  <alice.liu@apple.com>
         Patch by Beth Dakin <bdakin@apple.com> and Alice Liu
 
index fd312c2..fbe588e 100644 (file)
@@ -52,7 +52,6 @@ typedef GtkWidget* PlatformWidget;
 
 #if PLATFORM(QT)
 class QWidget;
-class QWebFrame;
 typedef QWidget* PlatformWidget;
 #endif
 
@@ -174,8 +173,6 @@ protected:
         void setNativeWidget(QWidget *widget);
         QWidget* nativeWidget() const;
 
-        QWebFrame* qwebframe() const;
-        void setQWebFrame(QWebFrame *webFrame);
         virtual void setParent(ScrollView*);
         ScrollView* parent() const;
         virtual void geometryChanged() const;
index f73bc03..9656b40 100644 (file)
@@ -43,6 +43,7 @@
 #include "NotImplemented.h"
 
 #include "qwebframe.h"
+#include "qwebframe_p.h"
 #include "qwebpage.h"
 #include <QPainter>
 #include <QPaintEngine>
@@ -58,9 +59,8 @@ struct WidgetPrivate
         , enabled(true)
         , suppressInvalidation(false)
         , m_widget(0)
-        , m_webFrame(0)
         , m_parentScrollView(0) { }
-    ~WidgetPrivate() { delete m_webFrame; }
+    ~WidgetPrivate() {}
 
     WidgetClient* m_client;
 
@@ -68,7 +68,6 @@ struct WidgetPrivate
     bool suppressInvalidation;
     QRect m_geometry;
     QWidget *m_widget; //for plugins
-    QWebFrame *m_webFrame;
     ScrollView *m_parentScrollView;
 };
 
@@ -132,16 +131,6 @@ void Widget::hide()
         data->m_widget->hide();
 }
 
-QWebFrame* Widget::qwebframe() const
-{
-    return data->m_webFrame;
-}
-
-void Widget::setQWebFrame(QWebFrame* webFrame)
-{
-    data->m_webFrame = webFrame;
-}
-
 QWidget* Widget::nativeWidget() const
 {
     return data->m_widget;
@@ -255,12 +244,14 @@ QWidget *Widget::containingWindow() const
     ScrollView *topLevel = this->topLevel();
     if (!topLevel)
         return 0;
-    QWidget *view = 0;
-    if (topLevel->data->m_webFrame)
-        view = topLevel->data->m_webFrame->page()->view();
-    if (!view)
-        view = data->m_widget;
-    return view;
+
+    if (!topLevel->isFrameView())
+        return data->m_widget;
+
+    QWebFrame* frame = QWebFramePrivate::kit(static_cast<FrameView*>(topLevel)->frame());
+    QWidget* view = frame->page()->view();
+
+    return view ? view : data->m_widget;
 }
 
 
index 88e4518..8d25025 100644 (file)
@@ -84,7 +84,6 @@ void QWebFramePrivate::init(QWebFrame *qframe, WebCore::Page *webcorePage, QWebF
     frameLoaderClient->setFrame(qframe, frame.get());
 
     FrameView* frameView = new FrameView(frame.get());
-    frameView->setQWebFrame(qframe);
     if (!frameData->allowsScrolling)
         frameView->setScrollbarsMode(ScrollbarAlwaysOff);
     if (frameData->marginWidth != -1)
index ebe94c2..9e508d4 100644 (file)
@@ -175,7 +175,7 @@ void QWebPagePrivate::createMainFrame()
         frameData.marginWidth = 0;
         frameData.marginHeight = 0;
         mainFrame = new QWebFrame(q, &frameData);
-        mainFrame->d->frameView->setFrameGeometry(IntRect(IntPoint(0,0), q->viewportSize()));
+        mainFrame->d->frame->view()->setFrameGeometry(IntRect(IntPoint(0,0), q->viewportSize()));
 
         emit q->frameCreated(mainFrame);
     }
@@ -1506,7 +1506,7 @@ QWebPageContext::QWebPageContext(const WebCore::HitTestResult &hitTest)
     }
     WebCore::Frame *frame = hitTest.targetFrame();
     if (frame)
-        d->targetFrame = frame->view()->qwebframe();
+        d->targetFrame = QWebFramePrivate::kit(frame);
 }
 
 QWebPageContext::QWebPageContext()
index 6d8254f..c55ba81 100644 (file)
@@ -2,6 +2,21 @@
 
         Reviewed by Simon.
 
+        * Do not store the QWebFrame associated with a ScrollView/FrameView
+        in the WebCore::Widget.
+        * Instead of asking the Widget for the QWebFrame use the QWebFramePrivate::core
+        and QWebFramePrivate::kit function to convert from and to QWebFrame.
+        
+
+        * Api/qwebframe.cpp:
+        (QWebFramePrivate::init):
+        * Api/qwebpage.cpp:
+        (QWebPagePrivate::createMainFrame):
+
+2008-04-01  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
+
+        Reviewed by Simon.
+
         * Do not store the FrameView in the QWebFrame and cope with the situation when
         a WebCore::Frame has no WebCore::FrameView.