cutter/src/dialogs/preferences/PreferenceCategory.cpp

58 lines
1.5 KiB
C++
Raw Normal View History

#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<PreferenceCategory> &children)
: name(name), icon(icon), widget(widget), children(children)
{
}
PreferenceCategory::PreferenceCategory(const QString &name, const QIcon &icon,
const QList<PreferenceCategory> &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());
}
}