~oif-team/ubuntu/natty/qt4-x11/xi2.1

« back to all changes in this revision

Viewing changes to src/gui/kernel/qgridlayout.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2006-10-12 23:14:14 UTC
  • mto: (15.1.1 lenny) (1.3.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 16.
  • Revision ID: james.westby@ubuntu.com-20061012231414-y2oqbom5dy389os0
Tags: upstream-4.2.0
ImportĀ upstreamĀ versionĀ 4.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
246
246
    int mh = 0;
247
247
    int n = 0;
248
248
    for (int r = 0; r < rr; r++) {
249
 
        if (!rData[r].empty) {
250
 
            h += rData[r].sizeHint;
251
 
            mh += rData[r].minimumSize;
 
249
        h += rData[r].sizeHint;
 
250
        mh += rData[r].minimumSize;
 
251
        if (!rData[r].empty)
252
252
            n++;
253
 
        }
254
253
    }
255
254
    if (n) {
256
255
        h += (n - 1) * spacing;
268
267
    if (!has_hfw)
269
268
        return -1;
270
269
    if (w + 2*margin != hfw_width) {
271
 
        qGeomCalc(colData, 0, cc, 0, w+2*margin, spacing);
272
 
        recalcHFW(w+2*margin, spacing);
 
270
        qGeomCalc(colData, 0, cc, 0, w - 2*margin, spacing);
 
271
        recalcHFW(w - 2*margin, spacing);
273
272
    }
274
273
    return hfw_height + 2*margin;
275
274
}
289
288
    int h = 0;
290
289
    int n = 0;
291
290
 
292
 
    for (int r = 0; r < rr; r++)
293
 
        if (!rowData[r].empty) {
294
 
            h = h + rowData[r].*size;
 
291
    for (int r = 0; r < rr; r++) {
 
292
        h = h + rowData[r].*size;
 
293
        if (!rowData[r].empty)
295
294
            n++;
296
 
        }
 
295
    }
297
296
    if (n)
298
297
        h += (n - 1) * spacer;
299
298
 
300
299
    n = 0;
301
 
    for (int c = 0; c < cc; c++)
302
 
        if (!colData[c].empty) {
303
 
            w = w + colData[c].*size;
 
300
    for (int c = 0; c < cc; c++) {
 
301
        w = w + colData[c].*size;
 
302
        if (!colData[c].empty)
304
303
            n++;
305
 
        }
 
304
    }
306
305
    if (n)
307
306
        w += (n - 1) * spacer;
308
307
 
357
356
        rSpacing.resize(newR);
358
357
        for (int i = rr; i < newR; i++) {
359
358
            rowData[i].init();
 
359
            rowData[i].maximumSize = 0;
 
360
            rowData[i].pos = 0;
 
361
            rowData[i].size = 0;
360
362
            rStretch[i] = 0;
361
363
            rSpacing[i] = 0;
362
364
        }
368
370
        cSpacing.resize(newC);
369
371
        for (int i = cc; i < newC; i++) {
370
372
            colData[i].init();
 
373
            colData[i].maximumSize = 0;
 
374
            colData[i].pos = 0;
 
375
            colData[i].size = 0;
371
376
            cStretch[i] = 0;
372
377
            cSpacing[i] = 0;
373
378
        }
460
465
        colData[box->col].minimumSize = qMax(minS.width(),
461
466
                                              colData[box->col].minimumSize);
462
467
 
463
 
        qMaxExpCalc(colData[box->col].maximumSize, colData[box->col].expansive,
464
 
                     maxS.width(),
465
 
                     box->expandingDirections() & Qt::Horizontal);
 
468
        qMaxExpCalc(colData[box->col].maximumSize, colData[box->col].expansive, colData[box->col].empty,
 
469
                    maxS.width(), box->expandingDirections() & Qt::Horizontal, box->isEmpty());
466
470
    }
467
471
    if (r) {
468
472
        if (!rStretch[box->row])
473
477
        rowData[box->row].minimumSize = qMax(minS.height(),
474
478
                                              rowData[box->row].minimumSize);
475
479
 
476
 
        qMaxExpCalc(rowData[box->row].maximumSize, rowData[box->row].expansive,
477
 
                     maxS.height(),
478
 
                     box->expandingDirections() & Qt::Vertical);
479
 
    }
480
 
    if (!box->isEmpty()) {
481
 
        // Empty boxes (i.e. spacers) do not get borders. This is
482
 
        // hacky, but compatible.
483
 
        if (c)
484
 
            colData[box->col].empty = false;
485
 
        if (r)
486
 
            rowData[box->row].empty = false;
 
480
        qMaxExpCalc(rowData[box->row].maximumSize, rowData[box->row].expansive, rowData[box->row].empty,
 
481
                    maxS.height(), box->expandingDirections() & Qt::Vertical, box->isEmpty());
487
482
    }
488
483
}
489
484
 
497
492
    for (i = start; i <= end; i++) {
498
493
        w += chain[i].minimumSize;
499
494
        wh += chain[i].sizeHint;
 
495
        if (chain[i].empty)
 
496
            chain[i].maximumSize = QWIDGETSIZE_MAX;
500
497
        max += chain[i].maximumSize;
501
498
        chain[i].empty = false;
502
499
        if (stretchArray[i] == 0)
555
552
    has_hfw = false;
556
553
    int i;
557
554
 
558
 
    for (i = 0; i < rr; i++)
 
555
    for (i = 0; i < rr; i++) {
559
556
        rowData[i].init(rStretch[i], rSpacing[i]);
560
 
    for (i = 0; i < cc; i++)
 
557
        rowData[i].maximumSize = rStretch[i] ? QLAYOUTSIZE_MAX : rSpacing[i];
 
558
    }
 
559
    for (i = 0; i < cc; i++) {
561
560
        colData[i].init(cStretch[i], cSpacing[i]);
562
 
 
 
561
        colData[i].maximumSize = cStretch[i] ? QLAYOUTSIZE_MAX : cSpacing[i];
 
562
    }
563
563
    for (int pass = 0; pass < 2; ++pass) {
564
564
        for (i = 0; i < things.size(); ++i) {
565
565
            QGridBox *box = things.at(i);
726
726
        return QRect();
727
727
 
728
728
    const QVector<QLayoutStruct> *rDataPtr;
729
 
    if (has_hfw)
 
729
    if (has_hfw && hfwData)
730
730
        rDataPtr = hfwData;
731
731
    else
732
732
        rDataPtr = &rowData;
805
805
    the margin width for a top-level layout, or to the same as the
806
806
    parent layout.
807
807
 
808
 
    \sa QBoxLayout, QStackedLayout, {Layout Classes}
 
808
    \sa QBoxLayout, QStackedLayout, {Layout Classes}, {Basic Layouts Example}
809
809
*/
810
810
 
811
811
 
1290
1290
{
1291
1291
    Q_D(QGridLayout);
1292
1292
    d->setRowStretch(row, stretch);
 
1293
    invalidate();
1293
1294
}
1294
1295
 
1295
1296
/*!
1335
1336
{
1336
1337
    Q_D(QGridLayout);
1337
1338
    d->setColStretch(column, stretch);
 
1339
    invalidate();
1338
1340
}
1339
1341
 
1340
1342
 
1348
1350
{
1349
1351
    Q_D(QGridLayout);
1350
1352
    d->setRowSpacing(row, minSize);
 
1353
    invalidate();
1351
1354
}
1352
1355
 
1353
1356
/*!
1370
1373
{
1371
1374
    Q_D(QGridLayout);
1372
1375
    d->setColSpacing(column, minSize);
 
1376
    invalidate();
1373
1377
}
1374
1378
 
1375
1379
/*!