#include "PreferenceCategory.h" PreferenceCategory::PreferenceCategory(const QString &name, const QIcon &icon) : name(name), icon(icon), widget(nullptr), children{} { } PreferenceCategory::PreferenceCategory(const QString &name, QWidget *widget, const QIcon &icon) : name(name), icon(icon), widget(widget), children{} { } PreferenceCategory::PreferenceCategory(const QString &name, QWidget *widget, const QIcon &icon, const QList &children) : name(name), icon(icon), widget(widget), children(children) { } PreferenceCategory::PreferenceCategory(const QString &name, const QIcon &icon, const QList &children) : name(name), icon(icon), widget(nullptr), children(children) { } void PreferenceCategory::addItem(QTreeWidget &tree, QStackedWidget &panel) { QTreeWidgetItem *w = new QTreeWidgetItem({name}); tree.addTopLevelItem(w); for (auto &c : children) c.addItem(*w, panel); w->setExpanded(true); w->setIcon(0, icon); if (widget) { panel.addWidget(widget); w->setData(0, Qt::UserRole, panel.count()); } } void PreferenceCategory::addItem(QTreeWidgetItem &tree, QStackedWidget &panel) { QTreeWidgetItem *w = new QTreeWidgetItem({name}); tree.addChild(w); for (auto &c : children) c.addItem(*w, panel); w->setExpanded(true); w->setIcon(0, icon); if (widget) { panel.addWidget(widget); w->setData(0, Qt::UserRole, panel.count()); } }