[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