diff options
Diffstat (limited to 'src/sessiontreemodel.cpp')
-rw-r--r-- | src/sessiontreemodel.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/sessiontreemodel.cpp b/src/sessiontreemodel.cpp index 12eebf5..d63bab5 100644 --- a/src/sessiontreemodel.cpp +++ b/src/sessiontreemodel.cpp @@ -4,6 +4,7 @@ #include <QIcon> #include <QResource> #include <QString> +#include <QtDebug> #include "sessiontreeitem.h" @@ -160,3 +161,49 @@ void SessionTreeModel::addItems(const QList<Session*>& sessions, parentItem->appendChild(new SessionTreeItem(s, parentItem)); } } + +void SessionTreeModel::addLabelItem(const QString& label, const QString& section) { + SessionTreeItem* parentItem; + + bool sectionExists = false; + + for (int i = 0; i < root_->childCount(); ++i) { + SessionTreeItem* item = root_->child(i); + if (item->text() == section) { + parentItem = item; + sectionExists = true; + break; + } + } + + if (!sectionExists) { + parentItem = new SessionTreeItem(section, root_); + root_->appendChild(parentItem); + } + + parentItem->appendChild(new SessionTreeItem(label, parentItem)); +} + +void SessionTreeModel::removeItem(const QString& name, const QString& section) { + SessionTreeItem* parentItem; + + bool sectionExists = false; + + for (int i = 0; i < root_->childCount(); ++i) { + SessionTreeItem* item = root_->child(i); + if (item->text() == section) { + parentItem = item; + sectionExists = true; + break; + } + } + + if (sectionExists) { + for (int i = 0; i < parentItem->childCount(); ++i) { + SessionTreeItem* item = parentItem->child(i); + if (item->text() == name) { + parentItem->removeChild(item); + } + } + } +} |