tests/auto/qsplitter/tst_qsplitter.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
2:56cd8111b7f7 3:41300fa6a67c
   100 
   100 
   101     // task-specific tests below me:
   101     // task-specific tests below me:
   102     void task187373_addAbstractScrollAreas();
   102     void task187373_addAbstractScrollAreas();
   103     void task187373_addAbstractScrollAreas_data();
   103     void task187373_addAbstractScrollAreas_data();
   104     void task169702_sizes();
   104     void task169702_sizes();
       
   105     void taskQTBUG_4101_ensureOneNonCollapsedWidget_data();
       
   106     void taskQTBUG_4101_ensureOneNonCollapsedWidget();
   105 
   107 
   106 private:
   108 private:
   107     void removeThirdWidget();
   109     void removeThirdWidget();
   108     void addThirdWidget();
   110     void addThirdWidget();
   109     QSplitter *splitter;
   111     QSplitter *splitter;
  1279 class MyFriendlySplitter : public QSplitter
  1281 class MyFriendlySplitter : public QSplitter
  1280 {
  1282 {
  1281 public:
  1283 public:
  1282     MyFriendlySplitter(QWidget *parent = 0) : QSplitter(parent) {}
  1284     MyFriendlySplitter(QWidget *parent = 0) : QSplitter(parent) {}
  1283     void setRubberBand(int pos) { QSplitter::setRubberBand(pos); }
  1285     void setRubberBand(int pos) { QSplitter::setRubberBand(pos); }
       
  1286 
       
  1287     friend class tst_QSplitter;
  1284 };
  1288 };
  1285 
  1289 
  1286 void tst_QSplitter::rubberBandNotInSplitter()
  1290 void tst_QSplitter::rubberBandNotInSplitter()
  1287 {
  1291 {
  1288     MyFriendlySplitter split;
  1292     MyFriendlySplitter split;
  1401 
  1405 
  1402     //Make sure the minimimSizeHint is respected
  1406     //Make sure the minimimSizeHint is respected
  1403     QCOMPARE(testW->size().height(), testW->minimumSizeHint().height());
  1407     QCOMPARE(testW->size().height(), testW->minimumSizeHint().height());
  1404 }
  1408 }
  1405 
  1409 
       
  1410 void tst_QSplitter::taskQTBUG_4101_ensureOneNonCollapsedWidget_data()
       
  1411 {
       
  1412     QTest::addColumn<bool>("testingHide");
       
  1413 
       
  1414     QTest::newRow("last non collapsed hidden") << true;
       
  1415     QTest::newRow("last non collapsed deleted") << false;
       
  1416 }
       
  1417 
       
  1418 void tst_QSplitter::taskQTBUG_4101_ensureOneNonCollapsedWidget()
       
  1419 {
       
  1420     QFETCH(bool, testingHide);
       
  1421 
       
  1422     MyFriendlySplitter s;
       
  1423     QLabel *l;
       
  1424     for (int i = 0; i < 5; ++i) {
       
  1425         l = new QLabel(QString("Label ") + QChar('A' + i));
       
  1426         l->setAlignment(Qt::AlignCenter);
       
  1427         s.addWidget(l);
       
  1428         s.moveSplitter(0, i);  // Collapse all the labels except the last one.
       
  1429     }
       
  1430 
       
  1431     s.show();
       
  1432     if (testingHide)
       
  1433         l->hide();
       
  1434     else
       
  1435         delete l;
       
  1436     QTest::qWait(100);
       
  1437     QVERIFY(s.sizes().at(0) > 0);
       
  1438 }
       
  1439 
  1406 QTEST_MAIN(tst_QSplitter)
  1440 QTEST_MAIN(tst_QSplitter)
  1407 #include "tst_qsplitter.moc"
  1441 #include "tst_qsplitter.moc"