Changeset 19046 in webkit
- Timestamp:
- Jan 23, 2007, 8:35:12 AM (18 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r19045 r19046 1 2007-01-23 Lars Knoll <lars@trolltech.com> 2 3 Reviewed by Zack 4 5 Widget and ScrollView do not own the Qt widgets 6 anymore. Make sure they can handle the case of 7 a null QWidget and never delete them. 8 9 * platform/qt/ScrollViewQt.cpp: 10 (WebCore::ScrollView::setScrollArea): 11 (WebCore::ScrollView::updateContents): 12 (WebCore::ScrollView::visibleWidth): 13 (WebCore::ScrollView::visibleHeight): 14 (WebCore::ScrollView::visibleContentRect): 15 (WebCore::ScrollView::setContentsPos): 16 (WebCore::ScrollView::resizeContents): 17 (WebCore::ScrollView::contentsX): 18 (WebCore::ScrollView::contentsY): 19 (WebCore::ScrollView::contentsWidth): 20 (WebCore::ScrollView::contentsHeight): 21 (WebCore::ScrollView::scrollOffset): 22 (WebCore::ScrollView::scrollBy): 23 (WebCore::ScrollView::hScrollbarMode): 24 (WebCore::ScrollView::vScrollbarMode): 25 (WebCore::ScrollView::setHScrollbarMode): 26 (WebCore::ScrollView::setVScrollbarMode): 27 * platform/qt/WidgetQt.cpp: 28 (WebCore::WidgetPrivate::~WidgetPrivate): 29 (WebCore::Widget::setQWidget): 30 1 31 2007-01-23 Zack Rusin <zack@kde.org> 2 32 -
trunk/WebCore/platform/qt/ScrollViewQt.cpp
r18901 r19046 58 58 { 59 59 m_area = area; 60 if ( isFrameView()) {60 if (m_area && isFrameView()) { 61 61 ScrollViewCanvasQt* canvas = new ScrollViewCanvasQt(static_cast<FrameView*>(this), m_area); 62 62 m_area->setWidget(canvas); … … 68 68 { 69 69 //Update is fine for both now=true/false cases 70 if (m_area ->widget())70 if (m_area && m_area->widget()) 71 71 m_area->widget()->update(updateRect); 72 72 } … … 74 74 int ScrollView::visibleWidth() const 75 75 { 76 if (!m_area) 77 return 0; 76 78 return m_area->maximumViewportSize().width(); 77 79 } … … 79 81 int ScrollView::visibleHeight() const 80 82 { 83 if (!m_area) 84 return 0; 81 85 return m_area->maximumViewportSize().height(); 82 86 } … … 84 88 FloatRect ScrollView::visibleContentRect() const 85 89 { 90 if (!m_area) 91 return FloatRect(); 86 92 const QSize s(m_area->maximumViewportSize()); 87 93 … … 93 99 void ScrollView::setContentsPos(int newX, int newY) 94 100 { 101 if (!m_area) 102 return; 95 103 m_area->horizontalScrollBar()->setValue(newX); 96 104 m_area->verticalScrollBar()->setValue(newY); … … 99 107 void ScrollView::resizeContents(int w, int h) 100 108 { 101 if (m_area ->widget())109 if (m_area && m_area->widget()) 102 110 m_area->widget()->resize(w, h); 103 111 } … … 105 113 int ScrollView::contentsX() const 106 114 { 115 if (!m_area) 116 return 0; 107 117 return m_area->horizontalScrollBar()->value(); 108 118 } … … 110 120 int ScrollView::contentsY() const 111 121 { 122 if (!m_area) 123 return 0; 112 124 return m_area->verticalScrollBar()->value(); 113 125 } … … 115 127 int ScrollView::contentsWidth() const 116 128 { 117 if (!m_area ->widget())129 if (!m_area || !m_area->widget()) 118 130 return 0; 119 131 … … 123 135 int ScrollView::contentsHeight() const 124 136 { 125 if (!m_area ->widget())137 if (!m_area || !m_area->widget()) 126 138 return 0; 127 139 … … 142 154 IntSize ScrollView::scrollOffset() const 143 155 { 156 if (!m_area) 157 return IntSize(); 144 158 return IntSize(m_area->horizontalScrollBar()->value(), m_area->verticalScrollBar()->value()); 145 159 } … … 147 161 void ScrollView::scrollBy(int dx, int dy) 148 162 { 163 if (!m_area) 164 return; 149 165 m_area->horizontalScrollBar()->setValue(m_area->horizontalScrollBar()->value() + dx); 150 166 m_area->verticalScrollBar()->setValue(m_area->verticalScrollBar()->value() + dy); … … 153 169 ScrollbarMode ScrollView::hScrollbarMode() const 154 170 { 171 if (!m_area) 172 return ScrollbarAuto; 155 173 switch (m_area->horizontalScrollBarPolicy()) 156 174 { … … 168 186 ScrollbarMode ScrollView::vScrollbarMode() const 169 187 { 188 if (!m_area) 189 return ScrollbarAuto; 170 190 switch (m_area->verticalScrollBarPolicy()) 171 191 { … … 188 208 void ScrollView::setHScrollbarMode(ScrollbarMode newMode) 189 209 { 210 if (!m_area) 211 return; 190 212 switch (newMode) 191 213 { … … 204 226 void ScrollView::setVScrollbarMode(ScrollbarMode newMode) 205 227 { 228 if (!m_area) 229 return; 206 230 switch (newMode) 207 231 { -
trunk/WebCore/platform/qt/WidgetQt.cpp
r18901 r19046 48 48 { 49 49 WidgetPrivate() : m_parent(0), m_widget(0), m_client(0) { } 50 ~WidgetPrivate() { delete m_widget;}50 ~WidgetPrivate() { } 51 51 52 52 WidgetClient *m_client; … … 141 141 void Widget::setQWidget(QWidget* child) 142 142 { 143 delete data->m_widget;144 143 data->m_widget = child; 145 144 } -
trunk/WebKitQt/Api/qwebframe.cpp
r19042 r19046 58 58 59 59 d->frameView = new FrameView(d->frame.get()); 60 d->frameView->deref(); 60 61 d->frameView->setScrollArea(this); 61 62 d->frame->setView(d->frameView.get()); … … 78 79 79 80 d->frameView = new FrameView(d->frame.get()); 81 d->frameView->deref(); 80 82 d->frameView->setScrollArea(this); 81 83 d->frame->setView(d->frameView.get()); … … 84 86 QWebFrame::~QWebFrame() 85 87 { 88 if (d->frameView) 89 d->frameView->setScrollArea(0); 86 90 delete d; 87 91 } -
trunk/WebKitQt/ChangeLog
r19044 r19046 1 2007-01-23 Lars Knoll <lars@trolltech.com> 2 3 Reviewed by Zack 4 5 Fix refcounting of FrameViews (they get created with a 6 refcount of 1) and add a few safety checks to the 7 FrameLoaderClientQt. 8 9 * Api/qwebframe.cpp: 10 (QWebFrame::QWebFrame): 11 (QWebFrame::~QWebFrame): 12 * WebCoreSupport/FrameLoaderClientQt.cpp: 13 (WebCore::FrameLoaderClientQt::detachedFromParent3): 14 (WebCore::FrameLoaderClientQt::detachedFromParent4): 15 (WebCore::FrameLoaderClientQt::dispatchDidHandleOnloadEvents): 16 (WebCore::FrameLoaderClientQt::postProgressStartedNotification): 17 (WebCore::FrameLoaderClientQt::postProgressEstimateChangedNotification): 18 (WebCore::FrameLoaderClientQt::postProgressFinishedNotification): 19 (WebCore::FrameLoaderClientQt::frameLoaderDestroyed): 20 (WebCore::FrameLoaderClientQt::windowObjectCleared): 21 1 22 2007-01-23 Zack Rusin <zack@kde.org> 2 23 -
trunk/WebKitQt/WebCoreSupport/FrameLoaderClientQt.cpp
r19042 r19046 262 262 void FrameLoaderClientQt::detachedFromParent3() 263 263 { 264 if (!m_webFrame) 265 return; 266 if (m_webFrame->d->frameView) 267 m_webFrame->d->frameView->setScrollArea(0); 264 268 m_webFrame->d->frameView = 0; 265 269 } … … 269 273 { 270 274 delete m_webFrame; 275 m_webFrame = 0; 276 m_frame = 0; 271 277 } 272 278 … … 280 286 void FrameLoaderClientQt::dispatchDidHandleOnloadEvents() 281 287 { 282 emit m_webFrame->loadDone(); 288 if (m_webFrame) 289 emit m_webFrame->loadDone(); 283 290 } 284 291 … … 407 414 void FrameLoaderClientQt::postProgressStartedNotification() 408 415 { 409 emit loadStarted(m_webFrame); 416 if (m_webFrame && m_frame->page()) 417 emit loadStarted(m_webFrame); 410 418 } 411 419 412 420 void FrameLoaderClientQt::postProgressEstimateChangedNotification() 413 421 { 414 emit loadProgressChanged(m_frame->page()->progress()->estimatedProgress()); 422 if (m_webFrame && m_frame->page()) 423 emit loadProgressChanged(m_frame->page()->progress()->estimatedProgress()); 415 424 } 416 425 417 426 void FrameLoaderClientQt::postProgressFinishedNotification() 418 427 { 419 emit loadFinished(m_webFrame); 428 if (m_webFrame && m_frame->page()) 429 emit loadFinished(m_webFrame); 420 430 } 421 431 … … 559 569 void FrameLoaderClientQt::frameLoaderDestroyed() 560 570 { 571 m_webFrame = 0; 561 572 m_frame = 0; 562 573 delete this; … … 570 581 void FrameLoaderClientQt::windowObjectCleared() const 571 582 { 572 emit m_webFrame->cleared(); 583 if (m_webFrame) 584 emit m_webFrame->cleared(); 573 585 } 574 586
Note:
See TracChangeset
for help on using the changeset viewer.