diff options
Diffstat (limited to 'src/sessiontreemodel.cpp')
-rw-r--r-- | src/sessiontreemodel.cpp | 73 |
1 files changed, 17 insertions, 56 deletions
diff --git a/src/sessiontreemodel.cpp b/src/sessiontreemodel.cpp index 177049d..2078aaa 100644 --- a/src/sessiontreemodel.cpp +++ b/src/sessiontreemodel.cpp @@ -150,77 +150,38 @@ QModelIndex SessionTreeModel::parent(const QModelIndex &index) const { return createIndex(parentItem->row(), 0, parentItem); } -void SessionTreeModel::addItems(const QList<Session*>& sessions, - 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); - } - +void SessionTreeModel::addItems(const QList<Session*>& sessions) { foreach (Session* s, sessions) { - parentItem->appendChild(new SessionTreeItem(s, parentItem)); + root_->appendChild(new SessionTreeItem(s, root_)); } } -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::addLabelItem(const QString& label) { + root_->appendChild(new SessionTreeItem(label, root_)); } -void SessionTreeModel::removeItem(const QString& name, const QString& section) { - SessionTreeItem* parentItem; - - bool sectionExists = false; - +void SessionTreeModel::removeItem(const QString& name) { for (int i = 0; i < root_->childCount(); ++i) { SessionTreeItem* item = root_->child(i); - if (item->text() == section) { - parentItem = item; - sectionExists = true; - break; + if (item->text() == name) { + root_->removeChild(item); } } +} + +QList<Session*> SessionTreeModel::lookForItem(const QString& label) { + QList<Session*> result; - if (sectionExists) { - for (int i = 0; i < parentItem->childCount(); ++i) { - SessionTreeItem* item = parentItem->child(i); - if (item->text() == name) { - parentItem->removeChild(item); - } + for (int i = 0; i < root_->childCount(); ++i) { + SessionTreeItem* item = root_->child(i); + if (item->session()->shortDescription().contains(label, Qt::CaseInsensitive)) { + result.append(const_cast<Session*>(item->session())); } } + return result; } void SessionTreeModel::updateView() { emit layoutChanged(); } + |