|
@@ -21,6 +21,8 @@
|
|
|
// Qt includes
|
|
|
#include <QApplication>
|
|
|
#include <QCheckBox>
|
|
|
+#include <QDialogButtonBox>
|
|
|
+#include <QPushButton>
|
|
|
#include <QSettings>
|
|
|
#include <QTimer>
|
|
|
|
|
@@ -41,8 +43,31 @@ int ctkSettingsDialogTest1(int argc, char * argv [] )
|
|
|
settings.remove("key 1");
|
|
|
|
|
|
ctkSettingsDialog settingsDialog;
|
|
|
+
|
|
|
+ // Get a reference to the DialogButtonBox
|
|
|
+ QDialogButtonBox * buttonBox = settingsDialog.findChild<QDialogButtonBox*>("SettingsButtonBox");
|
|
|
+ if (!buttonBox)
|
|
|
+ {
|
|
|
+ std::cerr << "Line " << __LINE__ << " - Failed to get a reference to the button box !" << std::endl;
|
|
|
+ return EXIT_FAILURE;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Reset button should be disabled by default
|
|
|
+ if (buttonBox->button(QDialogButtonBox::Reset)->isEnabled())
|
|
|
+ {
|
|
|
+ std::cerr << "Line " << __LINE__ << " - Reset button should be disabled !" << std::endl;
|
|
|
+ return EXIT_FAILURE;
|
|
|
+ }
|
|
|
+
|
|
|
settingsDialog.setSettings(&settings);
|
|
|
|
|
|
+ // Reset button should be disabled after settings are set
|
|
|
+ if (buttonBox->button(QDialogButtonBox::Reset)->isEnabled())
|
|
|
+ {
|
|
|
+ std::cerr << "Line " << __LINE__ << " - Reset button should be disabled !" << std::endl;
|
|
|
+ return EXIT_FAILURE;
|
|
|
+ }
|
|
|
+
|
|
|
ctkSettingsPanel* panel1 = new ctkSettingsPanel;
|
|
|
settingsDialog.addPanel("Panel 1", panel1);
|
|
|
if (panel1->settings() != &settings)
|
|
@@ -73,7 +98,19 @@ int ctkSettingsDialogTest1(int argc, char * argv [] )
|
|
|
std::cerr << "Saving to settings failed" << std::endl;
|
|
|
return EXIT_FAILURE;
|
|
|
}
|
|
|
+ // Reset button should be enabled after settings are modified
|
|
|
+ if (!buttonBox->button(QDialogButtonBox::Reset)->isEnabled())
|
|
|
+ {
|
|
|
+ std::cerr << "Line " << __LINE__ << " - Reset button should be enabled !" << std::endl;
|
|
|
+ return EXIT_FAILURE;
|
|
|
+ }
|
|
|
settingsDialog.resetSettings();
|
|
|
+ // Reset button should be enabled after settings are reset
|
|
|
+ if (buttonBox->button(QDialogButtonBox::Reset)->isEnabled())
|
|
|
+ {
|
|
|
+ std::cerr << "Line " << __LINE__ << " - Reset button should be disabled !" << std::endl;
|
|
|
+ return EXIT_FAILURE;
|
|
|
+ }
|
|
|
boxVal = settings.value("key 1");
|
|
|
if (!boxVal.isValid() || boxVal.toBool() != false)
|
|
|
{
|
|
@@ -81,6 +118,30 @@ int ctkSettingsDialogTest1(int argc, char * argv [] )
|
|
|
return EXIT_FAILURE;
|
|
|
}
|
|
|
|
|
|
+ // Reset button should be enabled after settings are modified
|
|
|
+ box->setChecked(true);
|
|
|
+ boxVal = settings.value("key 1");
|
|
|
+ if (!boxVal.isValid() || boxVal.toBool() != true)
|
|
|
+ {
|
|
|
+ std::cerr << "Saving to settings failed" << std::endl;
|
|
|
+ return EXIT_FAILURE;
|
|
|
+ }
|
|
|
+ if (!buttonBox->button(QDialogButtonBox::Reset)->isEnabled())
|
|
|
+ {
|
|
|
+ std::cerr << "Line " << __LINE__ << " - Reset button should be enabled !" << std::endl;
|
|
|
+ return EXIT_FAILURE;
|
|
|
+ }
|
|
|
+ // .. and reset button should be disabled if new settings object is set
|
|
|
+ QSettings settings2(QSettings::IniFormat, QSettings::UserScope, "Common ToolKit", "CTK");
|
|
|
+ settingsDialog.setSettings(&settings2);
|
|
|
+ if (buttonBox->button(QDialogButtonBox::Reset)->isEnabled())
|
|
|
+ {
|
|
|
+ std::cerr << "Line " << __LINE__ << " - Reset button should be disabled !" << std::endl;
|
|
|
+ return EXIT_FAILURE;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
settingsDialog.setCurrentPanel("Panel 4");
|
|
|
|
|
|
settingsDialog.show();
|