[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
darin
darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:20:14 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 1bb17f28e4fdc50642a1f3f43ccab8ecec3fda63
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Fri Jan 17 22:38:03 2003 +0000
Reviewed by Dave.
- clean room rewrite of QCString::operator<<.
* kwq/KWQCString.mm: (operator<<): Rewrote it.
- update format of render tree dumping for real use
* khtml/rendering/render_layer.h: Added elementList().
* khtml/rendering/render_layer.cpp: (RenderLayer::elementList): Added.
* kwq/KWQRenderTreeDebug.cpp:
(operator<<): Added an overload for writing out QRect.
(writeIndent): Added.
(write): Use the overload for QRect, also reorganize to dump layers.
(writeLayers): Use this to dump the layers.
(externalRepresentation): Call writeLayers instead of write.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3350 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 9deb2dc..6fbbeac 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,5 +1,25 @@
2003-01-17 Darin Adler <darin at apple.com>
+ Reviewed by Dave.
+
+ - clean room rewrite of QCString::operator<<.
+
+ * kwq/KWQCString.mm: (operator<<): Rewrote it.
+
+ - update format of render tree dumping for real use
+
+ * khtml/rendering/render_layer.h: Added elementList().
+ * khtml/rendering/render_layer.cpp: (RenderLayer::elementList): Added.
+
+ * kwq/KWQRenderTreeDebug.cpp:
+ (operator<<): Added an overload for writing out QRect.
+ (writeIndent): Added.
+ (write): Use the overload for QRect, also reorganize to dump layers.
+ (writeLayers): Use this to dump the layers.
+ (externalRepresentation): Call writeLayers instead of write.
+
+2003-01-17 Darin Adler <darin at apple.com>
+
Reviewed by Ken.
- removed unused KWQDrawUtil code
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 9deb2dc..6fbbeac 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,5 +1,25 @@
2003-01-17 Darin Adler <darin at apple.com>
+ Reviewed by Dave.
+
+ - clean room rewrite of QCString::operator<<.
+
+ * kwq/KWQCString.mm: (operator<<): Rewrote it.
+
+ - update format of render tree dumping for real use
+
+ * khtml/rendering/render_layer.h: Added elementList().
+ * khtml/rendering/render_layer.cpp: (RenderLayer::elementList): Added.
+
+ * kwq/KWQRenderTreeDebug.cpp:
+ (operator<<): Added an overload for writing out QRect.
+ (writeIndent): Added.
+ (write): Use the overload for QRect, also reorganize to dump layers.
+ (writeLayers): Use this to dump the layers.
+ (externalRepresentation): Call writeLayers instead of write.
+
+2003-01-17 Darin Adler <darin at apple.com>
+
Reviewed by Ken.
- removed unused KWQDrawUtil code
diff --git a/WebCore/khtml/rendering/render_layer.cpp b/WebCore/khtml/rendering/render_layer.cpp
index e7bd2a0..7ad769e 100644
--- a/WebCore/khtml/rendering/render_layer.cpp
+++ b/WebCore/khtml/rendering/render_layer.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2002 Apple Computer, Inc.
+ * Copyright (C) 2002, 2003 Apple Computer, Inc.
*
* Portions are Copyright (C) 1998 Netscape Communications Corporation.
*
@@ -213,13 +213,13 @@ void
RenderLayer::paint(QPainter *p, int x, int y, int w, int h)
{
// Create the z-tree of layers that should be displayed.
- QRect damageRect = QRect(x,y,w,h);
- RenderLayer::RenderZTreeNode* node = constructZTree(damageRect, damageRect, this);
+ QRect damageRect(x,y,w,h);
+ RenderZTreeNode* node = constructZTree(damageRect, damageRect, this);
if (!node)
return;
// Flatten the tree into a back-to-front list for painting.
- QPtrVector<RenderLayer::RenderLayerElement> layerList;
+ QPtrVector<RenderLayerElement> layerList;
constructLayerList(node, &layerList);
// Walk the list and paint each layer, adding in the appropriate offset.
@@ -228,7 +228,7 @@ RenderLayer::paint(QPainter *p, int x, int y, int w, int h)
uint count = layerList.count();
for (uint i = 0; i < count; i++) {
- RenderLayer::RenderLayerElement* elt = layerList.at(i);
+ RenderLayerElement* elt = layerList.at(i);
// Elements add in their own positions as a translation factor. This forces
// us to subtract that out, so that when it's added back in, we get the right
@@ -319,18 +319,18 @@ RenderLayer::nodeAtPoint(RenderObject::NodeInfo& info, int x, int y)
{
bool inside = false;
QRect damageRect(m_x, m_y, m_width, m_height);
- RenderLayer::RenderZTreeNode* node = constructZTree(damageRect, damageRect, this, true, x, y);
+ RenderZTreeNode* node = constructZTree(damageRect, damageRect, this, true, x, y);
if (!node)
return false;
// Flatten the tree into a back-to-front list for painting.
- QPtrVector<RenderLayer::RenderLayerElement> layerList;
+ QPtrVector<RenderLayerElement> layerList;
constructLayerList(node, &layerList);
// Walk the list and test each layer, adding in the appropriate offset.
uint count = layerList.count();
for (int i = count-1; i >= 0; i--) {
- RenderLayer::RenderLayerElement* elt = layerList.at(i);
+ RenderLayerElement* elt = layerList.at(i);
// Elements add in their own positions as a translation factor. This forces
// us to subtract that out, so that when it's added back in, we get the right
@@ -358,7 +358,7 @@ RenderLayer::constructZTree(QRect overflowClipRect, QRect posClipRect,
RenderArena* renderArena = renderer()->renderArena();
// This variable stores the result we will hand back.
- RenderLayer::RenderZTreeNode* returnNode = 0;
+ RenderZTreeNode* returnNode = 0;
// If a layer isn't visible, then none of its child layers are visible either.
// Don't build this branch of the z-tree, since these layers should not be painted.
@@ -488,10 +488,10 @@ RenderLayer::constructZTree(QRect overflowClipRect, QRect posClipRect,
}
void
-RenderLayer::constructLayerList(RenderZTreeNode* ztree, QPtrVector<RenderLayer::RenderLayerElement>* result)
+RenderLayer::constructLayerList(RenderZTreeNode* ztree, QPtrVector<RenderLayerElement>* result)
{
// This merge buffer is just a temporary used during computation as we do merge sorting.
- QPtrVector<RenderLayer::RenderLayerElement> mergeBuffer;
+ QPtrVector<RenderLayerElement> mergeBuffer;
ztree->constructLayerList(&mergeBuffer, result);
}
@@ -602,7 +602,7 @@ void RenderLayer::RenderZTreeNode::constructLayerList(QPtrVector<RenderLayerElem
// Now set all of the elements' z-indices to match the parent's explicit z-index, so that
// they will be layered properly in the ancestor layer's stacking context.
for (uint i = startIndex; i < endIndex; i++) {
- RenderLayer::RenderLayerElement* elt = buffer->at(i);
+ RenderLayerElement* elt = buffer->at(i);
elt->zindex = explicitZIndex;
}
}
@@ -674,3 +674,16 @@ void RenderLayer::RenderZTreeNode::detach(RenderArena* renderArena)
renderArena->free(*(size_t *)this, this);
}
+QPtrVector<RenderLayer::RenderLayerElement> RenderLayer::elementList()
+{
+ QPtrVector<RenderLayerElement> list;
+
+ QRect damageRect(m_x, m_y, m_width, m_height);
+ RenderZTreeNode *node = constructZTree(damageRect, damageRect, this);
+ if (node) {
+ constructLayerList(node, &list);
+ node->detach(renderer()->renderArena());
+ }
+
+ return list;
+}
diff --git a/WebCore/khtml/rendering/render_layer.h b/WebCore/khtml/rendering/render_layer.h
index 3b8554b..c8d9fc5 100644
--- a/WebCore/khtml/rendering/render_layer.h
+++ b/WebCore/khtml/rendering/render_layer.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2002 Apple Computer, Inc.
+ * Copyright (C) 2002, 2003 Apple Computer, Inc.
*
* Portions are Copyright (C) 1998 Netscape Communications Corporation.
*
@@ -231,6 +231,9 @@ public:
// The normal operator new is disallowed.
void* operator new(size_t sz) throw();
};
+
+ // For debugging.
+ QPtrVector<RenderLayerElement> elementList();
private:
// The constructZTree function creates a z-tree for a given layer hierarchy
diff --git a/WebCore/kwq/KWQCString.mm b/WebCore/kwq/KWQCString.mm
index 342d98e..a02db22 100644
--- a/WebCore/kwq/KWQCString.mm
+++ b/WebCore/kwq/KWQCString.mm
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2001, 2002 Apple Computer, Inc. All rights reserved.
+ * Copyright (C) 2001, 2002, 2003 Apple Computer, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -27,6 +27,8 @@
#import <ctype.h>
+using std::ostream;
+
QCString::QCString() : QByteArray(0)
{
}
@@ -302,8 +304,11 @@ bool operator==(const QCString &s1, const char *s2)
}
#ifdef _KWQ_IOSTREAM_
-std::ostream &operator<<(std::ostream &o, const QCString &s)
+
+ostream &operator <<(ostream &o, const QCString &s)
{
- return o << (const char *)s.data();
+ const char *chs = s;
+ return o << chs;
}
+
#endif
diff --git a/WebCore/kwq/KWQRenderTreeDebug.cpp b/WebCore/kwq/KWQRenderTreeDebug.cpp
index 7eb60c4..39c3db5 100644
--- a/WebCore/kwq/KWQRenderTreeDebug.cpp
+++ b/WebCore/kwq/KWQRenderTreeDebug.cpp
@@ -35,32 +35,37 @@
#include "KWQKHTMLPart.h"
#include "KWQTextStream.h"
+using khtml::RenderLayer;
using khtml::RenderObject;
using khtml::RenderTableCell;
using khtml::RenderWidget;
+typedef khtml::RenderLayer::RenderLayerElement RenderLayerElement;
+
+static void writeLayers(QTextStream &ts, const RenderObject &o, int indent = 0);
+
+static QTextStream &operator<<(QTextStream &ts, const QRect &r)
+{
+ return ts << "(" << r.x() << "," << r.y() << "," << r.width() << "," << r.height() << ")";
+}
+
static QTextStream &operator<<(QTextStream &ts, const RenderObject &o)
{
ts << o.renderName();
- ts << " ";
- if (o.isInline()) ts << "il ";
- if (o.childrenInline()) ts << "ci ";
- if (o.isFloating()) ts << "fl ";
- if (o.isAnonymousBox()) ts << "an ";
- if (o.isRelPositioned()) ts << "rp ";
- if (o.isPositioned()) ts << "ps ";
- if (o.overhangingContents()) ts << "oc ";
- if (o.layouted()) ts << "lt ";
- if (o.mouseInside()) ts << "mi ";
- if (o.style() && o.style()->zIndex()) ts << "zI: " << o.style()->zIndex();
+ if (o.style() && o.style()->zIndex()) {
+ ts << " zI: " << o.style()->zIndex();
+ }
- if (o.element() && o.element()->active()) ts << "act ";
- if (o.element() && o.element()->hasAnchor()) ts << "anchor ";
- if (o.element() && o.element()->focused()) ts << "focus ";
- if (o.element()) ts << " <" << getTagName(o.element()->id()).string() << ">";
+ if (o.element()) {
+ QString tagName(getTagName(o.element()->id()).string());
+ if (!tagName.isEmpty()) {
+ ts << " {" << tagName << "}";
+ }
+ }
- ts << " (" << o.xPos() << "," << o.yPos() << "," << o.width() << "," << o.height() << ")";
+ QRect r(o.xPos(), o.yPos(), o.width(), o.height());
+ ts << " " << r;
if (o.isTableCell()) {
const RenderTableCell &c = static_cast<const RenderTableCell &>(o);
@@ -70,17 +75,23 @@ static QTextStream &operator<<(QTextStream &ts, const RenderObject &o)
return ts;
}
-static void write(QTextStream &ts, const RenderObject &o, int indent = 0)
+static void writeIndent(QTextStream &ts, int indent)
{
- {
- QString indentationSpaces;
- indentationSpaces.fill(' ', indent * 2);
- ts << indentationSpaces;
+ for (int i = 0; i != indent; ++i) {
+ ts << " ";
}
+}
+
+static void write(QTextStream &ts, const RenderObject &o, int indent = 0)
+{
+ writeIndent(ts, indent);
- ts << o << '\n';
+ ts << o << "\n";
for (RenderObject *child = o.firstChild(); child; child = child->nextSibling()) {
+ if (child->layer()) {
+ continue;
+ }
write(ts, *child, indent + 1);
}
@@ -89,19 +100,51 @@ static void write(QTextStream &ts, const RenderObject &o, int indent = 0)
if (view) {
RenderObject *root = KWQ(view->part())->renderer();
if (root) {
- write(ts, *root, indent + 1);
+ writeLayers(ts, *root, indent + 1);
}
}
}
}
+static void write(QTextStream &ts, const RenderLayerElement &e, int indent = 0)
+{
+ RenderLayer &l = *e.layer;
+
+ writeIndent(ts, indent);
+
+ ts << "RenderLayer";
+
+ QRect r(l.xPos(), l.yPos(), l.width(), l.height());
+
+ ts << " " << r;
+
+ if (r != r.intersect(e.backgroundClipRect)) {
+ ts << " backgroundClip" << e.backgroundClipRect;
+ }
+ if (r != r.intersect(e.clipRect)) {
+ ts << " clip" << e.clipRect;
+ }
+
+ ts << "\n";
+
+ write(ts, *l.renderer(), indent + 1);
+}
+
+static void writeLayers(QTextStream &ts, const RenderObject &o, int indent)
+{
+ QPtrVector<RenderLayerElement> list = o.layer()->elementList();
+ for (unsigned i = 0; i != list.count(); ++i) {
+ write(ts, *list[i], indent);
+ }
+}
+
QString externalRepresentation(const RenderObject *o)
{
QString s;
{
QTextStream ts(&s);
if (o) {
- write(ts, *o);
+ writeLayers(ts, *o);
}
}
return s;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list