X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingsdlg.cpp;h=d1db2cef902787af52b8ba07a2c7226712dc2f0e;hp=351950d9a2a2911d588a239bc60c7634c4e92b1b;hb=e049ffc61b5e260a49d73102a74c3821af827e77;hpb=f824db0e31b54969e0b7fa0b5405b1e9173d482c diff --git a/src/qtui/settingsdlg.cpp b/src/qtui/settingsdlg.cpp index 351950d9..d1db2cef 100644 --- a/src/qtui/settingsdlg.cpp +++ b/src/qtui/settingsdlg.cpp @@ -52,14 +52,22 @@ void SettingsDlg::registerSettingsPage(SettingsPage *sp) { if(!cats.count()) { cat = new QTreeWidgetItem(ui.settingsTree, QStringList(sp->category())); cat->setExpanded(true); - cat->setFlags(Qt::ItemIsEnabled); + cat->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); } else { cat = cats[0]; } - QTreeWidgetItem *item = new QTreeWidgetItem(cat, QStringList(sp->title())); - item->setData(0, SettingsPageRole, qVariantFromValue(sp)); + + QTreeWidgetItem *item; + if(sp->title().isEmpty()) + item = cat; + else + item = new QTreeWidgetItem(cat, QStringList(sp->title())); + + item->setData(0, SettingsPageRole, QVariant::fromValue(sp)); ui.settingsTree->setMinimumWidth(ui.settingsTree->header()->sectionSizeHint(0) + 5); pageIsLoaded[sp] = false; + if(!ui.settingsTree->selectedItems().count()) + ui.settingsTree->setCurrentItem(item); } void SettingsDlg::selectPage(SettingsPage *sp) { @@ -87,8 +95,15 @@ void SettingsDlg::selectPage(SettingsPage *sp) { } if(sp != currentPage()) { - ui.pageTitle->setText(sp->title()); - setWindowTitle(tr("Configure %1").arg(sp->title())); + if(sp->title().isEmpty()) { + ui.pageTitle->setText(sp->category()); + setWindowTitle(tr("Configure %1").arg(sp->category())); + } + else { + ui.pageTitle->setText(sp->title()); + setWindowTitle(tr("Configure %1").arg(sp->title())); + } + ui.settingsStack->setCurrentWidget(sp); _currentPage = sp; }