|  | @@ -44,6 +44,9 @@ private slots:
 | 
	
		
			
				|  |  |    void testChangeProperty_data();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    void testEmptyQStringList();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  void testResetRestoreReloadSettings();
 | 
	
		
			
				|  |  | +  void testResetRestoreReloadSettings_data();
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  //-----------------------------------------------------------------------------
 | 
	
	
		
			
				|  | @@ -235,6 +238,152 @@ void ctkSettingsPanelTester::testEmptyQStringList()
 | 
	
		
			
				|  |  |    settingsPanel.setSettings(&settings2);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +//-----------------------------------------------------------------------------
 | 
	
		
			
				|  |  | +void ctkSettingsPanelTester::testResetRestoreReloadSettings()
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +  QSettings settings(QSettings::IniFormat, QSettings::UserScope, "Common ToolKit", "CTK");
 | 
	
		
			
				|  |  | +  // Clear settings
 | 
	
		
			
				|  |  | +  settings.clear();
 | 
	
		
			
				|  |  | +  settings.sync();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  int settingsValue = 1;
 | 
	
		
			
				|  |  | +  int initValue = 2;
 | 
	
		
			
				|  |  | +  int newValue = 3;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  QFETCH(bool, setSettingsValue);
 | 
	
		
			
				|  |  | +  if (setSettingsValue)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    settings.setValue("key 1", settingsValue);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  QSpinBox spinBox;
 | 
	
		
			
				|  |  | +  spinBox.setValue(initValue);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  ctkSettingsPanel settingsPanel;
 | 
	
		
			
				|  |  | +  settingsPanel.setSettings(&settings);
 | 
	
		
			
				|  |  | +  settingsPanel.registerProperty("key 1", &spinBox, "value",
 | 
	
		
			
				|  |  | +                                 SIGNAL(valueChanged(int)));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  QFETCH(bool, setSpinBoxValue);
 | 
	
		
			
				|  |  | +  if (setSpinBoxValue)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    spinBox.setValue(newValue);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  QFETCH(bool, applySettings);
 | 
	
		
			
				|  |  | +  if (applySettings)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    settingsPanel.applySettings();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  QFETCH(bool, resetSettings);
 | 
	
		
			
				|  |  | +  if (resetSettings)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    settingsPanel.resetSettings();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  QFETCH(bool, restoreDefaultSettings);
 | 
	
		
			
				|  |  | +  if (restoreDefaultSettings)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    settingsPanel.restoreDefaultSettings();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  QFETCH(bool, reloadSettings);
 | 
	
		
			
				|  |  | +  if (reloadSettings)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    settingsPanel.reloadSettings();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  QFETCH(int, finalValue);
 | 
	
		
			
				|  |  | +  QCOMPARE(settings.value("key 1").toInt(), finalValue);
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +//-----------------------------------------------------------------------------
 | 
	
		
			
				|  |  | +void ctkSettingsPanelTester::testResetRestoreReloadSettings_data()
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +  QTest::addColumn<bool>("setSettingsValue");
 | 
	
		
			
				|  |  | +  QTest::addColumn<bool>("setSpinBoxValue");
 | 
	
		
			
				|  |  | +  QTest::addColumn<bool>("applySettings");
 | 
	
		
			
				|  |  | +  QTest::addColumn<bool>("resetSettings");
 | 
	
		
			
				|  |  | +  QTest::addColumn<bool>("restoreDefaultSettings");
 | 
	
		
			
				|  |  | +  QTest::addColumn<bool>("reloadSettings");
 | 
	
		
			
				|  |  | +  QTest::addColumn<int>("finalValue");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  int settingsValue = 1;
 | 
	
		
			
				|  |  | +  int initValue = 2;
 | 
	
		
			
				|  |  | +  int newValue = 3;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  //   settings spinbox apply    reset   restore  reload  final
 | 
	
		
			
				|  |  | +  QTest::newRow("set value")
 | 
	
		
			
				|  |  | +    << false << true << false << false << false << false << newValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("reload")
 | 
	
		
			
				|  |  | +    << false << true << false << false << false << true << newValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("restore")
 | 
	
		
			
				|  |  | +    << false << true << false << false << true << false << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("restore and reload")
 | 
	
		
			
				|  |  | +    << false << true << false << false << true << true << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("reset")
 | 
	
		
			
				|  |  | +    << false << true << false << true << false << false << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("reset and reload")
 | 
	
		
			
				|  |  | +    << false << true << false << true << false << true << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("reset and restore")
 | 
	
		
			
				|  |  | +    << false << true << false << true << true << false << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("reset, restore and reload")
 | 
	
		
			
				|  |  | +    << false << true << false << true << true << true << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply")
 | 
	
		
			
				|  |  | +    << false << true << true << false << false << false << newValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply and reload")
 | 
	
		
			
				|  |  | +    << false << true << true << false << false << true << newValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply and restore")
 | 
	
		
			
				|  |  | +    << false << true << true << false << true << false << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply, restore and reload")
 | 
	
		
			
				|  |  | +    << false << true << true << false << true << true << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply and reset")
 | 
	
		
			
				|  |  | +    << false << true << true << true << false << false << newValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply, reset and reload")
 | 
	
		
			
				|  |  | +    << false << true << true << true << false << true << newValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply, reset and restore")
 | 
	
		
			
				|  |  | +    << false << true << true << true << true << false << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply, reset, restore and reload")
 | 
	
		
			
				|  |  | +    << false << true << true << true << true << true << initValue;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  // with existing settings
 | 
	
		
			
				|  |  | +  //   settings spinbox apply    reset   restore  reload  final
 | 
	
		
			
				|  |  | +  QTest::newRow("set value with settings")
 | 
	
		
			
				|  |  | +    << true << true << false << false << false << false << newValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("reload with settings")
 | 
	
		
			
				|  |  | +    << true << true << false << false << false << true << newValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("restore with settings")
 | 
	
		
			
				|  |  | +    << true << true << false << false << true << false << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("restore and reload with settings")
 | 
	
		
			
				|  |  | +    << true << true << false << false << true << true << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("reset with settings")
 | 
	
		
			
				|  |  | +    << true << true << false << true << false << false << settingsValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("reset and reload with settings")
 | 
	
		
			
				|  |  | +    << true << true << false << true << false << true << settingsValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("reset and restore with settings")
 | 
	
		
			
				|  |  | +    << true << true << false << true << true << false << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("reset, restore and reload with settings")
 | 
	
		
			
				|  |  | +    << true << true << false << true << true << true << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply with settings")
 | 
	
		
			
				|  |  | +    << true << true << true << false << false << false << newValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply and reload with settings")
 | 
	
		
			
				|  |  | +    << true << true << true << false << false << true << newValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply and restore with settings")
 | 
	
		
			
				|  |  | +    << true << true << true << false << true << false << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply, restore and reload with settings")
 | 
	
		
			
				|  |  | +    << true << true << true << false << true << true << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply and reset with settings")
 | 
	
		
			
				|  |  | +    << true << true << true << true << false << false << newValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply, reset and reload with settings")
 | 
	
		
			
				|  |  | +    << true << true << true << true << false << true << newValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply, reset and restore with settings")
 | 
	
		
			
				|  |  | +    << true << true << true << true << true << false << initValue;
 | 
	
		
			
				|  |  | +  QTest::newRow("apply, reset, restore and reload with settings")
 | 
	
		
			
				|  |  | +    << true << true << true << true << true << true << initValue;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  // ----------------------------------------------------------------------------
 | 
	
		
			
				|  |  |  CTK_TEST_MAIN(ctkSettingsPanelTest)
 | 
	
		
			
				|  |  |  #include "moc_ctkSettingsPanelTest.cpp"
 |