Method to change buttons in the buttonbar of ConfigDialog has been added.
authorP.L. Lucas <selairi@gmail.com>
Sun, 17 May 2015 20:37:44 +0000 (22:37 +0200)
committerP.L. Lucas <selairi@gmail.com>
Sun, 17 May 2015 20:37:44 +0000 (22:37 +0200)
configdialog/lxqtconfigdialog.cpp
configdialog/lxqtconfigdialog.h

index df443cf..1d5b25e 100644 (file)
@@ -34,7 +34,7 @@ ConfigDialog::ConfigDialog(const QString& title, Settings* settings, QWidget* pa
     QDialog(parent),
     mSettings(settings),
     mCache(new SettingsCache(settings)),
-    ui(new Ui::ConfigDialog)
+    ui(new Ui::ConfigDialog) 
 {
     ui->setupUi(this);
     setWindowTitle(title);
@@ -45,6 +45,13 @@ ConfigDialog::ConfigDialog(const QString& title, Settings* settings, QWidget* pa
         button->setAutoDefault(false);
 }
 
+void ConfigDialog::setButtons(QDialogButtonBox::StandardButtons buttons) 
+{
+    ui->buttons->setStandardButtons(buttons);
+    foreach(QPushButton* button, ui->buttons->findChildren<QPushButton*>())
+        button->setAutoDefault(false);
+}
+
 void ConfigDialog::addPage(QWidget* page, const QString& name, const QString& iconName)
 {
     addPage(page, name, QStringList() << iconName);
@@ -90,13 +97,14 @@ void ConfigDialog::closeEvent(QCloseEvent* event)
 
 void ConfigDialog::dialogButtonsAction(QAbstractButton* button)
 {
-    QDialogButtonBox::ButtonRole role = ui->buttons->buttonRole(button);
-    if (role == QDialogButtonBox::ResetRole)
+    QDialogButtonBox::StandardButton standardButton = ui->buttons->standardButton(button);
+    emit clicked(standardButton);
+    if (standardButton == QDialogButtonBox::Reset)
     {
         mCache->loadToSettings();
         emit reset();
     }
-    else
+    else if(standardButton == QDialogButtonBox::Close)
     {
         close();
     }
index 8095ae1..7203bcd 100644 (file)
@@ -28,6 +28,7 @@
 #include "lxqtsettings.h"
 #include <QDialog>
 #include <QAbstractButton>
+#include <QDialogButtonBox>
 #include "lxqtglobals.h"
 
 namespace Ui {
@@ -43,9 +44,15 @@ class LXQT_API ConfigDialog : public QDialog
 
 public:
     explicit ConfigDialog(const QString& title, Settings* settings, QWidget* parent = 0);
+
     ~ConfigDialog();
 
     /*!
+     * Sets buttons in button bar
+     */
+    void setButtons(QDialogButtonBox::StandardButtons buttons);
+
+    /*!
      * Add a page to the configure dialog
      */
     void addPage(QWidget* page, const QString& name, const QString& iconName="application-x-executable");
@@ -60,6 +67,8 @@ public:
      */
     void showPage(QWidget *page);
 
+   
+
 signals:
     /*!
      * This signal is emitted when the user pressed the "Reset" button.
@@ -73,6 +82,11 @@ signals:
      */
     void save();
 
+    /*!
+     * This is emitted when some button in the buttonbar is clicked.
+     */
+    void clicked(QDialogButtonBox::StandardButton);
+
 protected:
     Settings* mSettings;
     virtual void closeEvent(QCloseEvent* event);