QWizard: give all buttons an objectName
Only Commit, Finish and Cancel didn't have an object name, yet. Also Extract Method on the switch statement, add a test, and use QStringBuilder. Task-number: QTBUG-29924 Reported-by: Leo Arias Change-Id: I8c29606bc53e9d4caab631da2089e971a9da2d75 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
This commit is contained in:
parent
862a8d46c3
commit
1ea191276e
@ -1345,6 +1345,21 @@ void QWizardPrivate::updateCurrentPage()
|
||||
updateButtonTexts();
|
||||
}
|
||||
|
||||
static QString object_name_for_button(QWizard::WizardButton which)
|
||||
{
|
||||
switch (which) {
|
||||
case QWizard::CommitButton:
|
||||
return QLatin1String("qt_wizard_") + QLatin1String("commit");
|
||||
case QWizard::FinishButton:
|
||||
return QLatin1String("qt_wizard_") + QLatin1String("finish");
|
||||
case QWizard::CancelButton:
|
||||
return QLatin1String("qt_wizard_") + QLatin1String("cancel");
|
||||
default:
|
||||
// Make navigation buttons detectable as passive interactor in designer
|
||||
return QLatin1String("__qt__passive_wizardbutton") + QString::number(which);
|
||||
}
|
||||
}
|
||||
|
||||
bool QWizardPrivate::ensureButton(QWizard::WizardButton which) const
|
||||
{
|
||||
Q_Q(const QWizard);
|
||||
@ -1356,19 +1371,7 @@ bool QWizardPrivate::ensureButton(QWizard::WizardButton which) const
|
||||
QStyle *style = q->style();
|
||||
if (style != QApplication::style()) // Propagate style
|
||||
pushButton->setStyle(style);
|
||||
// Make navigation buttons detectable as passive interactor in designer
|
||||
switch (which) {
|
||||
case QWizard::CommitButton:
|
||||
case QWizard::FinishButton:
|
||||
case QWizard::CancelButton:
|
||||
break;
|
||||
default: {
|
||||
QString objectName = QLatin1String("__qt__passive_wizardbutton");
|
||||
objectName += QString::number(which);
|
||||
pushButton->setObjectName(objectName);
|
||||
}
|
||||
break;
|
||||
}
|
||||
pushButton->setObjectName(object_name_for_button(which));
|
||||
#ifdef Q_OS_MACX
|
||||
pushButton->setAutoDefault(false);
|
||||
#endif
|
||||
|
@ -52,6 +52,8 @@
|
||||
#include <QWizard>
|
||||
#include <QTreeWidget>
|
||||
|
||||
Q_DECLARE_METATYPE(QWizard::WizardButton);
|
||||
|
||||
static QImage grabWidget(QWidget *window)
|
||||
{
|
||||
return window->grab().toImage();
|
||||
@ -100,6 +102,8 @@ private slots:
|
||||
void setWizardStyle();
|
||||
void removePage();
|
||||
void sideWidget();
|
||||
void objectNames_data();
|
||||
void objectNames();
|
||||
|
||||
// task-specific tests below me:
|
||||
void task177716_disableCommitButton();
|
||||
@ -2384,6 +2388,44 @@ void tst_QWizard::sideWidget()
|
||||
QVERIFY(wizard.sideWidget() == 0);
|
||||
}
|
||||
|
||||
void tst_QWizard::objectNames_data()
|
||||
{
|
||||
QTest::addColumn<QWizard::WizardButton>("wizardButton");
|
||||
QTest::addColumn<QString>("buttonName");
|
||||
|
||||
QTest::newRow("BackButton") << QWizard::BackButton << QStringLiteral("__qt__passive_wizardbutton0");
|
||||
QTest::newRow("NextButton") << QWizard::NextButton << QStringLiteral("__qt__passive_wizardbutton1");
|
||||
QTest::newRow("CommitButton") << QWizard::CommitButton << QStringLiteral("qt_wizard_commit");
|
||||
QTest::newRow("FinishButton") << QWizard::FinishButton << QStringLiteral("qt_wizard_finish");
|
||||
QTest::newRow("CancelButton") << QWizard::CancelButton << QStringLiteral("qt_wizard_cancel");
|
||||
QTest::newRow("HelpButton") << QWizard::HelpButton << QStringLiteral("__qt__passive_wizardbutton5");
|
||||
QTest::newRow("CustomButton1") << QWizard::CustomButton1 << QStringLiteral("__qt__passive_wizardbutton6");
|
||||
QTest::newRow("CustomButton2") << QWizard::CustomButton2 << QStringLiteral("__qt__passive_wizardbutton7");
|
||||
QTest::newRow("CustomButton3") << QWizard::CustomButton3 << QStringLiteral("__qt__passive_wizardbutton8");
|
||||
}
|
||||
|
||||
void tst_QWizard::objectNames()
|
||||
{
|
||||
QFETCH(QWizard::WizardButton, wizardButton);
|
||||
QFETCH(QString, buttonName);
|
||||
|
||||
QWizard wizard;
|
||||
QList<QWizard::WizardButton> buttons = QList<QWizard::WizardButton>()
|
||||
<< QWizard::BackButton
|
||||
<< QWizard::NextButton
|
||||
<< QWizard::CommitButton
|
||||
<< QWizard::FinishButton
|
||||
<< QWizard::CancelButton
|
||||
<< QWizard::HelpButton
|
||||
<< QWizard::CustomButton1
|
||||
<< QWizard::CustomButton2
|
||||
<< QWizard::CustomButton3
|
||||
;
|
||||
QVERIFY(buttons.contains(wizardButton));
|
||||
QVERIFY(wizard.button(wizardButton));
|
||||
QCOMPARE(wizard.button(wizardButton)->objectName(), buttonName);
|
||||
}
|
||||
|
||||
class task177716_CommitPage : public QWizardPage
|
||||
{
|
||||
Q_OBJECT
|
||||
|
Loading…
Reference in New Issue
Block a user