From 8a9740334339a9886770157b967bfe354801d199 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Thu, 8 Nov 2018 13:33:30 +0100 Subject: [PATCH] QskDialogSubWindow API improved --- src/dialogs/QskDialogButtonBox.cpp | 4 ++-- src/dialogs/QskDialogButtonBox.h | 4 +++- src/dialogs/QskDialogSubWindow.cpp | 25 +++++++++++++++++++++++++ src/dialogs/QskDialogSubWindow.h | 3 +++ 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/dialogs/QskDialogButtonBox.cpp b/src/dialogs/QskDialogButtonBox.cpp index 281539bc..1afde3e3 100644 --- a/src/dialogs/QskDialogButtonBox.cpp +++ b/src/dialogs/QskDialogButtonBox.cpp @@ -272,7 +272,7 @@ void QskDialogButtonBox::addButton( } } -void QskDialogButtonBox::addButton( QskDialog::Action action ) +void QskDialogButtonBox::addAction( QskDialog::Action action ) { QskPushButton* button = createButton( action ); if ( button ) @@ -339,7 +339,7 @@ void QskDialogButtonBox::setActions( QskDialog::Actions actions ) { const auto action = static_cast< QskDialog::Action >( i ); if ( action & actions ) - addButton( action ); + addAction( action ); } invalidateLayout(); diff --git a/src/dialogs/QskDialogButtonBox.h b/src/dialogs/QskDialogButtonBox.h index cd6ae289..498c4a9a 100644 --- a/src/dialogs/QskDialogButtonBox.h +++ b/src/dialogs/QskDialogButtonBox.h @@ -39,7 +39,6 @@ class QSK_EXPORT QskDialogButtonBox : public QskBox bool centeredButtons() const; void addButton( QskPushButton*, QskDialog::ActionRole ); - void addButton( QskDialog::Action ); void removeButton( QskPushButton* ); void clear(); @@ -48,8 +47,11 @@ class QSK_EXPORT QskDialogButtonBox : public QskBox QskDialog::ActionRole actionRole( const QskPushButton* ) const; + void addAction( QskDialog::Action ); + void setActions( QskDialog::Actions ); QskDialog::Actions actions() const; + QskDialog::Action action( const QskPushButton* ) const; QskPushButton* button( QskDialog::Action ) const; diff --git a/src/dialogs/QskDialogSubWindow.cpp b/src/dialogs/QskDialogSubWindow.cpp index cf7113ed..85edb432 100644 --- a/src/dialogs/QskDialogSubWindow.cpp +++ b/src/dialogs/QskDialogSubWindow.cpp @@ -51,6 +51,31 @@ QskDialogSubWindow::~QskDialogSubWindow() { } +void QskDialogSubWindow::addDialogAction( QskDialog::Action action ) +{ + if ( action != QskDialog::NoAction ) + { + if ( m_data->buttonBox == nullptr ) + m_data->buttonBox = createButtonBox(); + + if ( m_data->buttonBox ) + m_data->buttonBox->addAction( action ); + } +} + +void QskDialogSubWindow::addDialogButton( + QskPushButton* button, QskDialog::ActionRole actionRole ) +{ + if ( button ) + { + if ( m_data->buttonBox == nullptr ) + m_data->buttonBox = createButtonBox(); + + if ( m_data->buttonBox ) + m_data->buttonBox->addButton( button, actionRole ); + } +} + void QskDialogSubWindow::setDialogActions( QskDialog::Actions actions ) { if ( m_data->actions == actions ) diff --git a/src/dialogs/QskDialogSubWindow.h b/src/dialogs/QskDialogSubWindow.h index ea6f031c..0be0b7e2 100644 --- a/src/dialogs/QskDialogSubWindow.h +++ b/src/dialogs/QskDialogSubWindow.h @@ -27,6 +27,9 @@ class QSK_EXPORT QskDialogSubWindow : public QskSubWindow QskDialog::Actions dialogActions() const; void setDialogActions( QskDialog::Actions ); + + void addDialogAction( QskDialog::Action ); + void addDialogButton( QskPushButton*, QskDialog::ActionRole ); Q_INVOKABLE QskDialog::Action clickedAction() const;