|
|
@ -181,25 +181,25 @@ bool FlowLayout::hasWidthForHeight() const{
|
|
|
|
return mOrientation == Qt::Horizontal;
|
|
|
|
return mOrientation == Qt::Horizontal;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TQSize FlowLayout::tqsizeHint() const{
|
|
|
|
TQSize FlowLayout::sizeHint() const{
|
|
|
|
//return tqminimumSize();
|
|
|
|
//return minimumSize();
|
|
|
|
TQSize size(0,0);
|
|
|
|
TQSize size(0,0);
|
|
|
|
TQPtrListIterator<TQLayoutItem> it(mLayoutItems);
|
|
|
|
TQPtrListIterator<TQLayoutItem> it(mLayoutItems);
|
|
|
|
TQLayoutItem *o;
|
|
|
|
TQLayoutItem *o;
|
|
|
|
while((o=it.current()) != 0){
|
|
|
|
while((o=it.current()) != 0){
|
|
|
|
++it;
|
|
|
|
++it;
|
|
|
|
size = size.expandedTo( o->tqsizeHint() );
|
|
|
|
size = size.expandedTo( o->sizeHint() );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return size;
|
|
|
|
return size;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TQSize FlowLayout::tqminimumSize() const{
|
|
|
|
TQSize FlowLayout::minimumSize() const{
|
|
|
|
TQSize size(0,0);
|
|
|
|
TQSize size(0,0);
|
|
|
|
TQPtrListIterator<TQLayoutItem> it(mLayoutItems);
|
|
|
|
TQPtrListIterator<TQLayoutItem> it(mLayoutItems);
|
|
|
|
TQLayoutItem *o;
|
|
|
|
TQLayoutItem *o;
|
|
|
|
while((o=it.current()) != 0){
|
|
|
|
while((o=it.current()) != 0){
|
|
|
|
++it;
|
|
|
|
++it;
|
|
|
|
size = size.expandedTo(o->tqminimumSize());
|
|
|
|
size = size.expandedTo(o->minimumSize());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return size;
|
|
|
|
return size;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -250,26 +250,26 @@ int FlowLayout::doLayoutHorizontal( const TQRect& rect, bool testOnly ){
|
|
|
|
TQPtrList<TQLayoutItem> column; // stores the items of one column
|
|
|
|
TQPtrList<TQLayoutItem> column; // stores the items of one column
|
|
|
|
while((layoutItem = it.current()) != 0){
|
|
|
|
while((layoutItem = it.current()) != 0){
|
|
|
|
++it;
|
|
|
|
++it;
|
|
|
|
//int nextY = y + layoutItem->tqsizeHint().height() + spacing(); // next y
|
|
|
|
//int nextY = y + layoutItem->sizeHint().height() + spacing(); // next y
|
|
|
|
int nextY = y + layoutItem->tqsizeHint().height(); // next y
|
|
|
|
int nextY = y + layoutItem->sizeHint().height(); // next y
|
|
|
|
//if( nextY - spacing() > rect.bottom() && width > 0 ) {
|
|
|
|
//if( nextY - spacing() > rect.bottom() && width > 0 ) {
|
|
|
|
if( nextY > rect.bottom() && width > 0 ) {
|
|
|
|
if( nextY > rect.bottom() && width > 0 ) {
|
|
|
|
// next column
|
|
|
|
// next column
|
|
|
|
y = rect.y(); // reset y
|
|
|
|
y = rect.y(); // reset y
|
|
|
|
x = x + width + spacing(); // new x
|
|
|
|
x = x + width + spacing(); // new x
|
|
|
|
//nextY = y + layoutItem->tqsizeHint().height() + spacing(); // next y with changed y
|
|
|
|
//nextY = y + layoutItem->sizeHint().height() + spacing(); // next y with changed y
|
|
|
|
nextY = y + layoutItem->tqsizeHint().height(); // next y with changed y
|
|
|
|
nextY = y + layoutItem->sizeHint().height(); // next y with changed y
|
|
|
|
width = 0; // reset width for the next column
|
|
|
|
width = 0; // reset width for the next column
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(!testOnly){
|
|
|
|
if(!testOnly){
|
|
|
|
layoutItem->setGeometry( TQRect( TQPoint( x, y ), layoutItem->tqsizeHint() ) );
|
|
|
|
layoutItem->setGeometry( TQRect( TQPoint( x, y ), layoutItem->sizeHint() ) );
|
|
|
|
column.append(layoutItem);
|
|
|
|
column.append(layoutItem);
|
|
|
|
height += layoutItem->tqsizeHint().height(); // add the height of the current item to the column height
|
|
|
|
height += layoutItem->sizeHint().height(); // add the height of the current item to the column height
|
|
|
|
if( it.current() == 0 || nextY + it.current()->tqsizeHint().height() > rect.bottom() ){ // test it it's the last item (of this column)
|
|
|
|
if( it.current() == 0 || nextY + it.current()->sizeHint().height() > rect.bottom() ){ // test it it's the last item (of this column)
|
|
|
|
// calculate real needed width
|
|
|
|
// calculate real needed width
|
|
|
|
int rWidth = 0;
|
|
|
|
int rWidth = 0;
|
|
|
|
for(TQLayoutItem* item = column.first(); item; item = column.next()){
|
|
|
|
for(TQLayoutItem* item = column.first(); item; item = column.next()){
|
|
|
|
rWidth = TQMAX( rWidth, item->widget()->tqsizeHint().width() );
|
|
|
|
rWidth = TQMAX( rWidth, item->widget()->sizeHint().width() );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// retqlayout the items of the former column
|
|
|
|
// retqlayout the items of the former column
|
|
|
|
int space = (rect.height() - height) / (column.count() + 1);
|
|
|
|
int space = (rect.height() - height) / (column.count() + 1);
|
|
|
@ -283,7 +283,7 @@ int FlowLayout::doLayoutHorizontal( const TQRect& rect, bool testOnly ){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
y = nextY;
|
|
|
|
y = nextY;
|
|
|
|
width = TQMAX( width, layoutItem->tqsizeHint().width() );
|
|
|
|
width = TQMAX( width, layoutItem->sizeHint().width() );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return x + width - rect.x(); // width
|
|
|
|
return x + width - rect.x(); // width
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -296,18 +296,18 @@ int FlowLayout::doLayoutVertical( const TQRect& rect, bool testOnly ){
|
|
|
|
TQLayoutItem* layoutItem;
|
|
|
|
TQLayoutItem* layoutItem;
|
|
|
|
while((layoutItem = it.current() ) != 0){
|
|
|
|
while((layoutItem = it.current() ) != 0){
|
|
|
|
++it;
|
|
|
|
++it;
|
|
|
|
//int nextX = x + layoutItem->tqsizeHint().width() + spacing();
|
|
|
|
//int nextX = x + layoutItem->sizeHint().width() + spacing();
|
|
|
|
int nextX = x + layoutItem->tqsizeHint().width();
|
|
|
|
int nextX = x + layoutItem->sizeHint().width();
|
|
|
|
if(nextX - spacing() > rect.right() && height > 0) {
|
|
|
|
if(nextX - spacing() > rect.right() && height > 0) {
|
|
|
|
// next line
|
|
|
|
// next line
|
|
|
|
x = rect.x(); // reset x
|
|
|
|
x = rect.x(); // reset x
|
|
|
|
//y = y + height + spacing(); // new y
|
|
|
|
//y = y + height + spacing(); // new y
|
|
|
|
y = y + height; // new y
|
|
|
|
y = y + height; // new y
|
|
|
|
//nextX = x + layoutItem->tqsizeHint().width() + spacing(); // next x
|
|
|
|
//nextX = x + layoutItem->sizeHint().width() + spacing(); // next x
|
|
|
|
nextX = x + layoutItem->tqsizeHint().width(); // next x
|
|
|
|
nextX = x + layoutItem->sizeHint().width(); // next x
|
|
|
|
height = 0; // reset height for the next line
|
|
|
|
height = 0; // reset height for the next line
|
|
|
|
}
|
|
|
|
}
|
|
|
|
const int itemHeight = layoutItem->tqsizeHint().height();
|
|
|
|
const int itemHeight = layoutItem->sizeHint().height();
|
|
|
|
if(!testOnly)
|
|
|
|
if(!testOnly)
|
|
|
|
layoutItem->setGeometry(TQRect(x, y, rect.right(), itemHeight));
|
|
|
|
layoutItem->setGeometry(TQRect(x, y, rect.right(), itemHeight));
|
|
|
|
x = nextX;
|
|
|
|
x = nextX;
|
|
|
|