25class Q_AUTOTEST_EXPORT QDialogButtonBoxPrivate :
public QWidgetPrivate
27 Q_DECLARE_PUBLIC(QDialogButtonBox)
30 enum class RemoveReason {
35 enum class LayoutRule {
44 QDialogButtonBoxPrivate(Qt::Orientation orient);
46 QList<QAbstractButton *> buttonLists[QDialogButtonBox::NRoles];
47 QVarLengthFlatMap<QPushButton *, QDialogButtonBox::StandardButton, 8> standardButtonMap;
48 QVarLengthFlatMap<QAbstractButton *, QDialogButtonBox::ButtonRole, 8> hiddenButtons;
50 Qt::Orientation orientation;
51 QDialogButtonBox::ButtonLayout layoutPolicy;
52 QBoxLayout *buttonLayout;
53 std::unique_ptr<QObject> filter;
55 bool ignoreShowAndHide =
false;
57 void createStandardButtons(QDialogButtonBox::StandardButtons buttons);
59 void removeButton(QAbstractButton *button, RemoveReason reason);
63 QPushButton *createButton(QDialogButtonBox::StandardButton button,
64 LayoutRule layoutRule = LayoutRule::DoLayout);
65 void addButton(QAbstractButton *button, QDialogButtonBox::ButtonRole role,
66 LayoutRule layoutRule = LayoutRule::DoLayout,
67 AddRule addRule = AddRule::Connect);
68 void handleButtonDestroyed();
69 void handleButtonClicked();
70 bool handleButtonShowAndHide(QAbstractButton *button, QEvent *event);
71 void addButtonsToLayout(
const QList<QAbstractButton *> &buttonList,
bool reverse);
72 void ensureFirstAcceptIsDefault();
73 void retranslateStrings();
75 QList<QAbstractButton *> allButtons()
const;
76 QList<QAbstractButton *> visibleButtons()
const;
77 QDialogButtonBox::ButtonRole buttonRole(QAbstractButton *button)
const;