Fixing BR #128 (Nicklist state not saved correctly) and ci of my current work.
[quassel.git] / src / qtui / settingsdlg.cpp
index a249c79..0b372f6 100644 (file)
@@ -65,7 +65,7 @@ void SettingsDlg::registerSettingsPage(SettingsPage *sp) {
   QTreeWidgetItem *item = new QTreeWidgetItem(cat, QStringList(sp->title()));
   treeItems[sp] = item;
   pages[QString("%1$%2").arg(sp->category(), sp->title())] = sp;
-  sp->load();
+  pageIsLoaded[sp] = false;
   // TESTING
   // selectPage(sp->category(), sp->title());
 }
@@ -78,6 +78,10 @@ void SettingsDlg::selectPage(const QString &cat, const QString &title) {
     ui.settingsTree->setCurrentItem(0);
     return;
   }
+  if(!pageIsLoaded[sp]) {
+    sp->load();
+    pageIsLoaded[sp] = true;
+  }
   if(sp != currentPage() && currentPage() != 0 && currentPage()->hasChanged()) {
     int ret = QMessageBox::warning(this, tr("Save changes"),
                                   tr("There are unsaved changes on the current configuration page. Would you like to apply your changes now?"),