Add delete of FeedNode objects when closing Larss
Leonardo Robol [2012-04-23 20:11]
Add delete of FeedNode objects when closing Larss
diff --git a/include/feedmodel.h b/include/feedmodel.h
index ae37145..17c346c 100644
--- a/include/feedmodel.h
+++ b/include/feedmodel.h
@@ -81,6 +81,8 @@ private:
FeedNode *rootNode;
+ void destroySubtree(QModelIndex subtreeRoot);
+
};
diff --git a/larss/feedmodel.cpp b/larss/feedmodel.cpp
index 143e196..9afe0b3 100644
--- a/larss/feedmodel.cpp
+++ b/larss/feedmodel.cpp
@@ -35,6 +35,24 @@ FeedModel::FeedModel(QSqlDatabase db, QObject *parent) : QStandardItemModel (par
FeedModel::~FeedModel()
{
+ destroySubtree(index(0, 0));
+}
+
+void
+FeedModel::destroySubtree(QModelIndex subtreeRoot) {
+ if (rowCount(subtreeRoot) == 0) {
+ FeedNode * ptr = itemFromIndex(subtreeRoot);
+ delete ptr;
+ }
+ else {
+ for (int i = 0; i < rowCount(subtreeRoot); i++) {
+ QModelIndex child = index(i, 0, subtreeRoot);
+ destroySubtree(child);
+
+ FeedNode* ptr = itemFromIndex(child);
+ delete ptr;
+ }
+ }
}
void