QDialogButtonBox: add a missing constructor

Setting the buttons in the constructor is a use-case that happens
more often than setting the orientation. Yet, there was a
(Qt::Orientation,QWidget*) constructor, but no
(StandardButtons,QWidget*) one.

This patch adds it.

Change-Id: If6a5c9f7450a388cd77bd93c8dd144b2fdc11847
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
This commit is contained in:
Marc Mutz 2012-12-12 22:40:30 +01:00 committed by The Qt Project
parent 7ddf1b14ec
commit bab630e4bf
3 changed files with 54 additions and 1 deletions

View File

@ -668,6 +668,21 @@ QDialogButtonBox::QDialogButtonBox(Qt::Orientation orientation, QWidget *parent)
d_func()->initLayout();
}
/*!
\since 5.2
Constructs a horizontal button box with the given \a parent, containing
the standard buttons specified by \a buttons.
\sa orientation, addButton()
*/
QDialogButtonBox::QDialogButtonBox(StandardButtons buttons, QWidget *parent)
: QWidget(*new QDialogButtonBoxPrivate(Qt::Horizontal), parent, 0)
{
d_func()->initLayout();
d_func()->createStandardButtons(buttons);
}
/*!
Constructs a button box with the given \a orientation and \a parent, containing
the standard buttons specified by \a buttons.

View File

@ -115,7 +115,8 @@ public:
QDialogButtonBox(QWidget *parent = 0);
QDialogButtonBox(Qt::Orientation orientation, QWidget *parent = 0);
QDialogButtonBox(StandardButtons buttons, Qt::Orientation orientation = Qt::Horizontal,
explicit QDialogButtonBox(StandardButtons buttons, QWidget *parent = 0);
QDialogButtonBox(StandardButtons buttons, Qt::Orientation orientation,
QWidget *parent = 0);
~QDialogButtonBox();

View File

@ -72,6 +72,8 @@ private slots:
void testConstructor2_data();
void testConstructor3();
void testConstructor3_data();
void testConstructor4();
void testConstructor4_data();
void setOrientation_data();
void setOrientation();
void addButton1_data();
@ -201,6 +203,41 @@ void tst_QDialogButtonBox::testConstructor3()
QTEST(buttonBox.buttons().count(), "buttonCount");
}
void tst_QDialogButtonBox::testConstructor4_data()
{
QTest::addColumn<QDialogButtonBox::StandardButtons>("buttons");
QTest::addColumn<int>("buttonCount");
QTest::newRow("nothing") << (QDialogButtonBox::StandardButtons)0 << 0;
QTest::newRow("only 1") << QDialogButtonBox::StandardButtons(QDialogButtonBox::Ok) << 1;
QTest::newRow("only 1.. twice")
<< (QDialogButtonBox::Ok | QDialogButtonBox::Ok)
<< 1;
QTest::newRow("only 2")
<< (QDialogButtonBox::Ok | QDialogButtonBox::Cancel)
<< 2;
QTest::newRow("two different things")
<< (QDialogButtonBox::Save | QDialogButtonBox::Close)
<< 2;
QTest::newRow("three")
<< (QDialogButtonBox::Ok
| QDialogButtonBox::Cancel
| QDialogButtonBox::Help)
<< 3;
QTest::newRow("everything")
<< (QDialogButtonBox::StandardButtons)UINT_MAX
<< 18;
}
void tst_QDialogButtonBox::testConstructor4()
{
QFETCH(QDialogButtonBox::StandardButtons, buttons);
QDialogButtonBox buttonBox(buttons);
QCOMPARE(buttonBox.orientation(), Qt::Horizontal);
QTEST(buttonBox.buttons().count(), "buttonCount");
}
void tst_QDialogButtonBox::setOrientation_data()
{
QTest::addColumn<int>("orientation");