prettify code spacing

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=765102
This commit is contained in:
Chani Armitage 2008-01-23 07:01:03 +00:00
parent 11f9ad3064
commit 593a6c8103
2 changed files with 87 additions and 86 deletions

View File

@ -43,8 +43,8 @@ public:
QList<LayoutItem*> children;
bool multiRow;
int rowCount;
int colCount() const {
return ((children.count()-1)/rowCount)+1;
int colCount() const {
return ((children.count() - 1) / rowCount) + 1;
}
Private(BoxLayout *parent)
@ -91,7 +91,7 @@ public:
// or shrinks
Qt::Orientation expandingDirection() const
{
switch ( direction ) {
switch (direction) {
case LeftToRight:
case RightToLeft:
return Qt::Horizontal;
@ -108,7 +108,7 @@ public:
// begin depending on the direction of this layout
qreal startPos(const QRectF& geometry) const
{
switch ( direction ) {
switch (direction) {
case LeftToRight:
return geometry.left() + q->margin(LeftMargin);
case TopToBottom:
@ -144,39 +144,37 @@ public:
QSizeF minSize = item->minimumSize();
QSizeF maxSize = item->maximumSize();
switch ( direction ) {
switch (direction) {
case LeftToRight:
case RightToLeft:
height = (geometry.height()-q->spacing()*(rowCount-1))/rowCount;
top = geometry.top()+row*(height+q->spacing());
height = (geometry.height() - q->spacing() * (rowCount - 1)) / rowCount;
top = geometry.top() + row * (height + q->spacing());
height = qBound(minSize.height(), height, maxSize.height());
break;
case TopToBottom:
case BottomToTop:
height = (geometry.width()-q->spacing()*(rowCount-1))/rowCount;
top = geometry.left()+row*(height+q->spacing());
height = (geometry.width() - q->spacing() * (rowCount - 1)) / rowCount;
top = geometry.left() + row * (height + q->spacing());
height = qBound(minSize.width(), height, maxSize.width());
break;
}
switch ( direction ) {
switch (direction) {
case LeftToRight:
newGeometry = QRectF(pos,top,size,height);
newPos = pos+size+q->spacing();
newGeometry = QRectF(pos, top, size, height);
newPos = pos + size + q->spacing();
break;
case RightToLeft:
newGeometry = QRectF(geometry.width()-pos-size,top,
size,height);
newPos = pos-size-q->spacing();
newGeometry = QRectF(geometry.width() - pos - size, top, size, height);
newPos = pos - size - q->spacing();
break;
case TopToBottom:
newGeometry = QRectF(top,pos,height,size);
newPos = pos+size+q->spacing();
newGeometry = QRectF(top, pos, height, size);
newPos = pos + size + q->spacing();
break;
case BottomToTop:
newGeometry = QRectF(top,geometry.height()-pos-size,
height,size);
newPos = pos-size-q->spacing();
newGeometry = QRectF(top, geometry.height() - pos - size, height, size);
newPos = pos - size - q->spacing();
break;
}
@ -200,9 +198,9 @@ public:
// this provides a + function which can be passed as the 'op'
// argument to calculateSize
static qreal sum(const qreal a , const qreal b)
static qreal sum(const qreal a, const qreal b)
{
return a+b;
return a + b;
}
// calcualtes a size hint or value for this layout
@ -211,13 +209,13 @@ public:
// 'op' - A function to apply to the size of each item in the layout
// , usually qMax,qMin or sum
template <class T>
qreal calculateSize(SizeType sizeType , Qt::Orientation dir , T (*op)(const T,const T)) const
qreal calculateSize(SizeType sizeType, Qt::Orientation dir, T (*op)(const T, const T)) const
{
qreal value = 0;
for ( int i = 0 ; i < children.count() ; i++ ) {
for (int i = 0; i < children.count(); i++) {
QSizeF itemSize;
switch ( sizeType ) {
switch (sizeType) {
case MinSize:
itemSize = children[i]->minimumSize();
break;
@ -229,10 +227,10 @@ public:
break;
}
if ( dir == Qt::Horizontal ) {
value = op(value,itemSize.width());
if (dir == Qt::Horizontal) {
value = op(value, itemSize.width());
} else {
value = op(value,itemSize.height());
value = op(value, itemSize.height());
}
}
@ -245,14 +243,14 @@ public:
{
QSizeF result;
const qreal totalSpacingC = q->spacing() * colCount()-1;
const qreal totalSpacingR = q->spacing() * rowCount-1;
const qreal totalSpacingC = q->spacing() * colCount() - 1;
const qreal totalSpacingR = q->spacing() * rowCount - 1;
switch ( direction ) {
switch (direction) {
case LeftToRight:
case RightToLeft:
result = QSizeF(calculateSize(calculateSizeType,Qt::Horizontal,sum)/rowCount,
calculateSize(calculateSizeType,Qt::Vertical,qMax<qreal>)*rowCount);
result = QSizeF(calculateSize(calculateSizeType, Qt::Horizontal, sum) / rowCount,
calculateSize(calculateSizeType, Qt::Vertical, qMax<qreal>) * rowCount);
result.rwidth() += q->margin(LeftMargin) + q->margin(RightMargin) + totalSpacingC;
result.rheight() += q->margin(TopMargin) + q->margin(BottomMargin) + totalSpacingR;
@ -260,8 +258,8 @@ public:
break;
case TopToBottom:
case BottomToTop:
result = QSizeF(calculateSize(calculateSizeType,Qt::Horizontal,qMax<qreal>)/rowCount,
calculateSize(calculateSizeType,Qt::Vertical,sum)*rowCount);
result = QSizeF(calculateSize(calculateSizeType, Qt::Horizontal, qMax<qreal>) / rowCount,
calculateSize(calculateSizeType, Qt::Vertical, sum) * rowCount);
result.rheight() += q->margin(TopMargin) + q->margin(BottomMargin) + totalSpacingC;
result.rwidth() += q->margin(LeftMargin) + q->margin(RightMargin) + totalSpacingR;
@ -274,7 +272,7 @@ public:
};
BoxLayout::BoxLayout(Direction direction , LayoutItem *parent)
BoxLayout::BoxLayout(Direction direction, LayoutItem *parent)
: Layout(parent),
d(new Private(this))
{
@ -286,6 +284,7 @@ void BoxLayout::setDirection(Direction direction)
d->direction = direction;
updateGeometry();
}
BoxLayout::Direction BoxLayout::direction() const
{
return d->direction;
@ -301,7 +300,7 @@ BoxLayout::~BoxLayout()
Qt::Orientations BoxLayout::expandingDirections() const
{
switch ( d->direction ) {
switch (d->direction) {
case LeftToRight:
case RightToLeft:
return Qt::Horizontal;
@ -411,14 +410,14 @@ void BoxLayout::relayout()
//qDebug() << "Box layout beginning with geo" << geometry;
//qDebug() << "This box max size" << maximumSize();
d->rowCount = 1;
if(d->multiRow) {
qreal minRowSize=1;
qreal minWidth=0;
if (d->multiRow) {
qreal minRowSize = 1;
qreal minWidth = 0;
for(int i = 0; i < d->children.count(); i++) {
minRowSize = qMax(minRowSize, d->size_o(d->children[i]->minimumSize()));
minWidth += d->size(d->children[i]->minimumSize());
}
const qreal ratio = 2.25; //maybe this should not be hardcoded
//we want the height of items be larger than the minimum size
int maxRow = (d->size_o(margined.size()) + spacing()) /
@ -429,42 +428,43 @@ void BoxLayout::relayout()
//FIXME: this formula doesn't take the cellspacing in account
// it should also try to "fill" before adding a row
d->rowCount = 1 + sqrt(ratio * count() * d->size_o(margined.size()) /
(d->size(margined.size())+1));
d->rowCount = qMax(minRow,d->rowCount);
d->rowCount = qMin(maxRow,d->rowCount);
d->rowCount = qMax(1,d->rowCount);
(d->size(margined.size()) + 1));
d->rowCount = qMax(minRow, d->rowCount);
d->rowCount = qMin(maxRow, d->rowCount);
d->rowCount = qMax(1, d->rowCount);
}
int colCount = d->colCount();
QVector<qreal> sizes(colCount,0);
QVector<qreal> expansionSpace(colCount,0);
QVector<qreal> sizes(colCount, 0);
QVector<qreal> expansionSpace(colCount, 0);
qreal available = d->size(margined.size()) - spacing() * colCount;
qreal perItemSize = available / colCount;
// initial distribution of space to items
for ( int i = 0 ; i < colCount ; i++ ) {
qreal minItemSize=0;
qreal maxItemSize=65536;
bool isExpanding=true;
for (int i = 0; i < colCount; i++) {
qreal minItemSize = 0;
qreal maxItemSize = 65536;
bool isExpanding = true;
qreal hint = 0;
for(int f = i*d->rowCount; f < (i+1)*d->rowCount; f++) {
if(f>=count()) {
for (int f = i * d->rowCount; f < (i + 1) * d->rowCount; f++) {
if (f >= count()) {
break;
}
const LayoutItem *item = d->children[f];
const bool itemExp = (item->expandingDirections() & d->expandingDirection());
isExpanding = isExpanding && itemExp;
minItemSize = qMax(minItemSize,d->size(item->minimumSize()));
maxItemSize = qMin(maxItemSize,d->size(item->maximumSize()));
if(!itemExp)
hint = qMax(hint,d->size(item->sizeHint()));
minItemSize = qMax(minItemSize, d->size(item->minimumSize()));
maxItemSize = qMin(maxItemSize, d->size(item->maximumSize()));
if (!itemExp) {
hint = qMax(hint, d->size(item->sizeHint()));
}
}
if ( isExpanding ) {
if (isExpanding) {
sizes[i] = perItemSize;
} else {
sizes[i] = hint;
@ -472,22 +472,22 @@ void BoxLayout::relayout()
// qDebug() << "Layout max item " << i << "size: " << maxItemSize;
sizes[i] = qMin( sizes[i] , maxItemSize );
sizes[i] = qMax( sizes[i] , minItemSize );
sizes[i] = qMin(sizes[i], maxItemSize);
sizes[i] = qMax(sizes[i], minItemSize);
// qDebug() << "Available: " << available << "per item:" << perItemSize <<
// "Initial size: " << sizes[i];
if ( isExpanding ) {
expansionSpace[i] = maxItemSize-sizes[i];
if (isExpanding) {
expansionSpace[i] = maxItemSize - sizes[i];
} else {
expansionSpace[i] = 0;
}
available -= sizes[i];
// adjust the per-item size if the space was over or under used
if ( sizes[i] != perItemSize && i != sizes.count()-1 ) {
perItemSize = available / (sizes.count()-i-1);
if (sizes[i] != perItemSize && i != sizes.count() - 1) {
perItemSize = available / (sizes.count() - i - 1);
}
}
@ -497,17 +497,17 @@ void BoxLayout::relayout()
// out of space or items to expand
int expandable = sizes.count();
const qreal threshold = 1.0;
while ( available > threshold && expandable > 0 ) {
while (available > threshold && expandable > 0) {
qreal extraSpace = available / expandable;
for ( int i = 0 ; i < colCount ; i++ ) {
if ( expansionSpace[i] > threshold ) {
for (int i = 0; i < colCount; i++) {
if (expansionSpace[i] > threshold) {
qreal oldSize = sizes[i];
sizes[i] += qMin(extraSpace,expansionSpace[i]);
sizes[i] += qMin(extraSpace, expansionSpace[i]);
expansionSpace[i] -= sizes[i]-oldSize;
available -= sizes[i]-oldSize;
expansionSpace[i] -= sizes[i] - oldSize;
available -= sizes[i] - oldSize;
} else {
expandable--;
}
@ -516,21 +516,22 @@ void BoxLayout::relayout()
// set items' geometry according to new sizes
qreal pos = d->startPos(geometry());
for ( int col = 0 ; col < colCount ; col++ ) {
for (int col = 0; col < colCount; col++) {
int newPos = pos;
for ( int row = 0 ; row < d->rowCount ; row++ ) {
int i = col*d->rowCount+row;
if(i>=count())
for (int row = 0; row < d->rowCount; row++) {
int i = col * d->rowCount + row;
if (i >= count()) {
break;
}
//QObject *obj = dynamic_cast<QObject*>(d->children[i]);
//if ( obj )
//qDebug() << "Item " << i << obj->metaObject()->className() << "size:" << sizes[i];
int p = d->layoutItem(margined, d->children[i], pos , sizes[col], row);
newPos = (row != 0 && p < pos) ? qMin(p,newPos) : qMax(p,newPos);
int p = d->layoutItem(margined, d->children[i], pos, sizes[col], row);
newPos = (row != 0 && p < pos) ? qMin(p, newPos) : qMax(p, newPos);
}
pos=newPos;
pos = newPos;
}
startAnimation();
@ -556,12 +557,12 @@ void BoxLayout::setMultiRow(bool b)
}
HBoxLayout::HBoxLayout(LayoutItem *parent)
: BoxLayout(LeftToRight,parent)
: BoxLayout(LeftToRight, parent)
{
}
VBoxLayout::VBoxLayout(LayoutItem *parent)
: BoxLayout(TopToBottom,parent)
: BoxLayout(TopToBottom, parent)
{
}

View File

@ -56,7 +56,7 @@ class PLASMA_EXPORT BoxLayout : public Layout
* Creates a new box layout which lays items out in the specified
* @p direction
*/
explicit BoxLayout(Direction direction , LayoutItem *parent = 0);
explicit BoxLayout(Direction direction, LayoutItem *parent = 0);
~BoxLayout();
/** Sets the direction in which items are laid out. */
@ -66,7 +66,7 @@ class PLASMA_EXPORT BoxLayout : public Layout
/** Inserts a new item into the layout at the specified index. */
void insertItem(int index, LayoutItem *l);
/** Set weither this layout will take severals row */
void setMultiRow(bool b);