summaryrefslogtreecommitdiffstats
path: root/smtreemodel.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2014-06-29 09:41:30 +0200
committerArno <am@disconnect.de>2014-06-29 09:41:30 +0200
commitf295cfb8672d97bb5c804499bdb311a9a0d8039b (patch)
tree77b54514e17d6bb453bd9431707f9f37954c9fc2 /smtreemodel.cpp
parentb5bd9cf0b981ee0c87ead9e20c36247932de7818 (diff)
downloadSheMov-f295cfb8672d97bb5c804499bdb311a9a0d8039b.tar.gz
SheMov-f295cfb8672d97bb5c804499bdb311a9a0d8039b.tar.bz2
SheMov-f295cfb8672d97bb5c804499bdb311a9a0d8039b.zip
Major rework of MappingTreeResultView + Model
Well, I hope this fixes the crashes for good. String comparison for looking up the parents really wasn't a prudent thing to do... Use the ParentIds instead.
Diffstat (limited to 'smtreemodel.cpp')
-rw-r--r--smtreemodel.cpp42
1 files changed, 21 insertions, 21 deletions
diff --git a/smtreemodel.cpp b/smtreemodel.cpp
index b52859c..1386179 100644
--- a/smtreemodel.cpp
+++ b/smtreemodel.cpp
@@ -126,17 +126,17 @@ bool SmTreeModel::setData(const QModelIndex &index, const QVariant &value, int r
return true;
}
-QModelIndex SmTreeModel::find(const QVariant &value, int column, const QModelIndex &parent) const{
+QModelIndex SmTreeModel::find(const QVariant &value, int column, const QModelIndex &pIdx) const{
SmTreeItem *parentItem = 0;
- if(!parent.isValid()){
+ if(!pIdx.isValid()){
parentItem = root();
}else{
- parentItem = static_cast<SmTreeItem*>(parent.internalPointer());
+ parentItem = static_cast<SmTreeItem*>(pIdx.internalPointer());
}
for(int i = 0; i < parentItem->childCount(); ++i){
SmTreeItem *child = parentItem->child(i);
if(child->data(column) == value){
- return index(i, column, parent);
+ return index(i, column, pIdx);
}
}
return QModelIndex();
@@ -166,12 +166,12 @@ QModelIndex SmTreeModel::findRecursive(const QVariant &value, int column, const
return QModelIndex();
}
-bool SmTreeModel::matchRecursive(const QModelIndex &parent, const QRegExp &regex, int column) const {
- if(!parent.isValid()){
+bool SmTreeModel::matchRecursive(const QModelIndex &pIdx, const QRegExp &regex, int column) const {
+ if(!pIdx.isValid()){
return false;
}
// first try the parent itself
- QString value = parent.data().toString();
+ QString value = pIdx.data().toString();
if(value.isEmpty()){
return false;
}
@@ -180,7 +180,7 @@ bool SmTreeModel::matchRecursive(const QModelIndex &parent, const QRegExp &regex
}
// no match, check for children
- SmTreeItem *item = static_cast<SmTreeItem*>(parent.internalPointer());
+ SmTreeItem *item = static_cast<SmTreeItem*>(pIdx.internalPointer());
if(!item->childCount()){
//leaf, chech parents
return checkParents(item, regex, column);
@@ -246,15 +246,15 @@ void SmTreeModel::reparent(const QModelIndex &idx, const QModelIndex &newParent,
addRow(data, pNewParent, sorted);
}
-bool SmTreeModel::insertRows(int row, int count, const QModelIndex &parent){
- SmTreeItem *parentItem = itemAt(parent);
+bool SmTreeModel::insertRows(int row, int count, const QModelIndex &pIdx){
+ SmTreeItem *parentItem = itemAt(pIdx);
bool retval;
if(row > parentItem->childCount()){
return false;
}
- beginInsertRows(parent, row, row + count - 1);
+ beginInsertRows(pIdx, row, row + count - 1);
for(int i = row; i < row + count; ++i){
SmTreeItem *newItem = new SmTreeItem(mRootItem->columnCount(), parentItem);
retval = parentItem->insertChild(i, newItem);
@@ -263,15 +263,15 @@ bool SmTreeModel::insertRows(int row, int count, const QModelIndex &parent){
return retval;
}
-bool SmTreeModel::removeRows(int row, int count, const QModelIndex &parent){
- SmTreeItem *parentItem = itemAt(parent);
+bool SmTreeModel::removeRows(int row, int count, const QModelIndex &pIdx){
+ SmTreeItem *parentItem = itemAt(pIdx);
bool retval;
if(row > parentItem->childCount()){
return false;
}
- beginRemoveRows(parent, row, row + count - 1);
+ beginRemoveRows(pIdx, row, row + count - 1);
for(int i = row + count; i > row; --i){
retval = parentItem->removeChild(i - 1);
}
@@ -279,12 +279,12 @@ bool SmTreeModel::removeRows(int row, int count, const QModelIndex &parent){
return retval;
}
-bool SmTreeModel::addRow(const QList<QVariant> &data, const QModelIndex &parent, bool sorted){
+bool SmTreeModel::addRow(const QList<QVariant> &data, const QModelIndex &pIdx, bool sorted){
if(data.count() != mRootItem->columnCount()){
return false;
}
- SmTreeItem *parentItem = itemAt(parent);
+ SmTreeItem *parentItem = itemAt(pIdx);
int where = 0;
if(sorted){
for(int i = 0; i < parentItem->childCount(); ++i){
@@ -295,21 +295,21 @@ bool SmTreeModel::addRow(const QList<QVariant> &data, const QModelIndex &parent,
}
}
- if(insertRows(where, 1, parent)){
+ if(insertRows(where, 1, pIdx)){
SmTreeItem *child = parentItem->child(where);
for(int i = 0; i < data.count(); ++i){
child->setData(i, data.at(i));
}
- QModelIndex start = index(parentItem->childCount() - 1, 0, parent);
- QModelIndex end = index(parentItem->childCount() - 1, parentItem->columnCount() - 1, parent);
+ QModelIndex start = index(parentItem->childCount() - 1, 0, pIdx);
+ QModelIndex end = index(parentItem->childCount() - 1, parentItem->columnCount() - 1, pIdx);
emit dataChanged(start, end);
return true;
}
return false;
}
-bool SmTreeModel::appendRow(const QList<QVariant> &data, const QModelIndex &parent){
- SmTreeItem *pItem = itemAt(parent);
+bool SmTreeModel::appendRow(const QList<QVariant> &data, const QModelIndex &pIdx){
+ SmTreeItem *pItem = itemAt(pIdx);
SmTreeItem *newItem = new SmTreeItem(data, pItem);
beginResetModel();
pItem->appendChild(newItem);