[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/kdm/kfrontend/themer
From: Oswald Buddenhagen <ossi () kde ! org>
Date: 2006-10-02 21:57:15
Message-ID: 1159826235.934727.26400.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 591640 by ossi:
maximal coolness: hierarchical debug output.
also, all themer debug is now controlled by the 0x200 debug bit.
M +18 -11 kdmitem.cpp
M +15 -6 kdmlayout.cpp
M +2 -0 kdmthemer.cpp
M +33 -0 parse.cpp
M +12 -0 parse.h
--- trunk/KDE/kdebase/workspace/kdm/kfrontend/themer/kdmitem.cpp #591639:591640
@@ -39,6 +39,7 @@
#include <QPainter>
//Added by qt3to4:
#include <QList>
+#include <QDebug>
KdmItem::KdmItem( QObject *parent, const QDomNode &node )
: QObject( parent )
@@ -212,10 +213,12 @@
void
KdmItem::setGeometry( QStack<QSize> &parentSizes, const QRect &newGeometry, bool \
force ) {
- kDebug() << " KdmItem::setGeometry " << objectName() << " " << newGeometry << endl;
+ enter("Item::setGeometry") << objectName() << " " << newGeometry << endl;
// check if already 'in place'
- if (!force && area == newGeometry)
+ if (!force && area == newGeometry) {
+ leave() << "unchanged" << endl;
return;
+ }
area = newGeometry;
@@ -228,6 +231,8 @@
fixedManager->update( parentSizes, newGeometry, force );
// TODO send *selective* repaint signal
+
+ leave() << "done" << endl;
}
void
@@ -351,7 +356,7 @@
{
if (!hintedSize.isValid()) {
hintedSize = sizeHint();
- kDebug() << " => hintedSize " << hintedSize << endl;
+ debug() << "hintedSize " << hintedSize << endl;
}
return hintedSize;
}
@@ -364,7 +369,7 @@
boxHint = ensureHintedSize( hintedSize );
else
boxHint = boxManager->sizeHint( parentSizes );
- kDebug() << " => boxHint " << boxHint << endl;
+ debug() << "boxHint " << boxHint << endl;
}
return boxHint;
}
@@ -422,16 +427,18 @@
void
KdmItem::sizingHint( QStack<QSize> &parentSizes, SizeHint &hint )
{
- kDebug() << "KdmItem::sizingHint " << objectName()
- << " parentSize=" << parentSizes.top() << endl;
+ enter("Item::sizingHint") << objectName() << " parentSize #"
+ << parentSizes.size() << " " << parentSizes.top() << endl;
QSize hintedSize, boxHint;
hint.min = hint.opt = hint.max = parentSizes.top();
calcSize( geom.size, parentSizes, hintedSize, boxHint, hint.opt );
calcSize( geom.minSize, parentSizes, hintedSize, boxHint, hint.min );
calcSize( geom.maxSize, parentSizes, hintedSize, boxHint, hint.max );
- kDebug() << "size " << hint.opt << " min " << hint.min << " max " << hint.max << \
endl;
+ leave() << "size " << hint.opt
+ << " min " << hint.min << " max " << hint.max << endl;
+
hint.max = hint.max.expandedTo( hint.min ); // if this triggers, the theme is bust
hint.opt = hint.opt.boundedTo( hint.max ).expandedTo( hint.min );
@@ -447,6 +454,9 @@
w = parentSize.width(),
h = parentSize.height();
+ enter("Item::placementHint") << objectName() << " parentSize #" << sizes.size()
+ << " " << parentSize << " size " << sz << " offset " << offset << endl;
+
if (geom.pos.x.type == DTpixel)
x += geom.pos.x.val;
else if (geom.pos.x.type == DTnpixel)
@@ -461,8 +471,6 @@
else if (geom.pos.y.type == DTpercent)
y += h * geom.pos.y.val / 100;
- kDebug() << "adjusted size " << sz << endl;
-
// defaults to center
int dx = sz.width() / 2, dy = sz.height() / 2;
@@ -477,8 +485,7 @@
if (geom.anchor.indexOf( 'e' ) >= 0)
dx = sz.width();
}
- kDebug() << "KdmItem::placementHint " << objectName() << " size=" << sz
- << " x=" << x << " dx=" << dx<< " y=" << y << " dy=" << dy << endl;
+ leave() << "x=" << x << " dx=" << dx << " y=" << y << " dy=" << dy << endl;
y -= dy;
x -= dx;
--- trunk/KDE/kdebase/workspace/kdm/kfrontend/themer/kdmlayout.cpp #591639:591640
@@ -37,11 +37,11 @@
void
KdmLayoutFixed::update( QStack<QSize> &parentSizes, const QRect &parentGeometry, \
bool force ) {
- kDebug() << "KdmLayoutFixed::update " << parentGeometry << endl;
+ enter("Fixed::update") << parentGeometry << " depth " << parentSizes.size() << \
endl;
// I can't layout children if the parent rectangle is not valid
if (parentGeometry.width() < 0 || parentGeometry.height() < 0) {
- kDebug() << "invalid\n";
+ leave() << "invalid geometry" << endl;
return;
}
// For each child in list I ask their hinted size and set it!
@@ -49,6 +49,7 @@
forEachChild (itm)
itm->setGeometry( parentSizes, itm->placementHint( parentSizes, \
parentGeometry.topLeft() ), force ); parentSizes.pop();
+ leave() << "done" << endl;
}
KdmLayoutBox::KdmLayoutBox( const QDomNode &node )
@@ -77,17 +78,19 @@
void
KdmLayoutBox::update( QStack<QSize> &parentSizes, const QRect &parentGeometry, bool \
force ) {
- kDebug() << this << " update " << parentGeometry << endl;
+ enter("Box::update") << parentGeometry << " depth " << parentSizes.size() << endl;
// I can't layout children if the parent rectangle is not valid
- if (!parentGeometry.isValid() || parentGeometry.isEmpty())
+ if (!parentGeometry.isValid() || parentGeometry.isEmpty()) {
+ leave() << "invalid geometry" << endl;
return;
+ }
QRect childrenRect = parentGeometry;
// Begin cutting the parent rectangle to attach children on the right place
childrenRect.adjust( box.xpadding, box.ypadding, -box.xpadding, -box.ypadding );
- kDebug() << this << " childrenRect " << childrenRect << endl;
+ debug() << "childrenRect " << childrenRect << endl;
// For each child in list ...
if (box.homogeneous) {
@@ -199,13 +202,15 @@
parentSizes.push( temp.size() );
QRect itemRect = itm->placementHint( parentSizes, temp.topLeft() );
parentSizes.pop();
- kDebug() << this << " placementHint for " << itm << " temp " << temp << " final " \
<< itemRect << " childrenRect now " << childrenRect << endl; + debug() << \
"placementHint for " << itm << " temp " << temp << " final " + << itemRect << " \
childrenRect now " << childrenRect << endl; parentSizes.push( parentGeometry.size() \
); itm->setGeometry( parentSizes, itemRect, force );
parentSizes.pop();
idx++;
}
}
+ leave() << "done" << endl;
}
QSize
@@ -217,6 +222,8 @@
// Sum up area taken by children
QSize parentSize = parentSizes.pop();
parentSizes.push( QSize( 0, 0 ) );
+ enter("Box::sizeHint") << "parentSize #" << parentSizes.size() << " "
+ << parentSize << endl;
forEachVisibleChild (itm) {
SizeHint sh;
itm->sizingHint( parentSizes, sh );
@@ -247,6 +254,8 @@
bounds.rwidth() += totspc;
bounds += QSize( 2 * box.xpadding, 2 * box.ypadding );
+ leave() << "bounds " << bounds << endl;
+
// Make hint at least equal to minimum size (if set)
return bounds.expandedTo( QSize( box.minwidth, box.minheight ) );
}
--- trunk/KDE/kdebase/workspace/kdm/kfrontend/themer/kdmthemer.cpp #591639:591640
@@ -177,6 +177,7 @@
break;
case QEvent::Paint:
if (m_geometryOutdated) {
+ debug() << "==== updating geometry ====" << endl;
QStack<QSize> ps;
QRect rect( QPoint( 0, 0 ), widget()->size() );
rootItem->setGeometry( ps, rect, m_geometryInvalid );
@@ -202,6 +203,7 @@
KdmThemer::paintBackground( QPaintDevice *dev )
{
if (KdmItem *bg = findNode( "background" )) {
+ debug() << "==== setting background geometry ====" << endl;
QRect rect( 0, 0, dev->width(), dev->height() );
QStack<QSize> ps;
bg->setGeometry( ps, rect, true );
--- trunk/KDE/kdebase/workspace/kdm/kfrontend/themer/parse.cpp #591639:591640
@@ -21,6 +21,8 @@
#include "parse.h"
+#include <kdm_greet.h>
+
#include <QString>
#include <QStringList>
#include <QColor>
@@ -28,6 +30,7 @@
#include <QWidget>
#include <QLineEdit>
#include <QComboBox>
+#include <QStack>
void
parseSize( const QString &s, DataPoint &pt )
@@ -270,3 +273,33 @@
setWidgetAttribs( widget, style, style.frame );
}
+
+#ifndef NDEBUG
+static QString prefix;
+static QStack<QString> prefixes;
+
+# define dbgs() kdbgstream( 0, 0, (debugLevel & DEBUG_THEMING) != 0 )
+
+kdbgstream
+enter( const char *fct )
+{
+ prefixes.push( prefix );
+ prefix.replace( '-', ' ' ).append( "|- " );
+ return dbgs() << prefixes.top() << fct << " ";
+}
+
+kdbgstream
+debug()
+{
+ return dbgs() << prefix;
+}
+
+kdbgstream
+leave()
+{
+ prefix[prefix.length() - 3] = '\\';
+ QString nprefix( prefix );
+ prefix = prefixes.pop();
+ return dbgs() << nprefix;
+}
+#endif
--- trunk/KDE/kdebase/workspace/kdm/kfrontend/themer/parse.h #591639:591640
@@ -22,6 +22,8 @@
#ifndef PARSE_H
#define PARSE_H
+#include <kdebug.h>
+
#include <QFont>
#include <QPalette>
@@ -59,4 +61,14 @@
void setWidgetAttribs( QWidget *, const StyleType & );
+#ifdef NDEBUG
+kndbgstream enter( const char * ) { return kndbgstream(); }
+kndbgstream debug() { return kndbgstream(); }
+kndbgstream leave() { return kndbgstream(); }
+#else
+kdbgstream enter( const char *fct );
+kdbgstream debug();
+kdbgstream leave();
#endif
+
+#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic