22 #include <QStringList>
37 #include "ctkLogger.h"
38 #include "boost/shared_ptr.hpp"
39 #include "ctkDICOMDatabase.h"
43 static ctkLogger logger (
"org.commontk.dicom.DICOMModel" );
64 void remove(
const QModelIndex& index);
81 if (!indexValue.isValid())
106 q->beginInsertRows(indexValue, std::max<int>(0, node->getFetchedChildren().size()-1), node->getChildrenUID().size()-1);
108 for (
int i=node->getFetchedChildren().size(); i<node->getChildrenUID().size(); ++i)
120 qDebug() <<
"Remove DICOM node " << node->
getValue(0).toString();
148 : Superclass(parentObject)
172 return d->RootNode->getHeaders().size();
190 else if (( role==Qt::DisplayRole )||( role==Qt::EditRole ))
193 return node->
getValue(dataIndex.column());
203 d->fetchChildren(parentValue);
211 if (parentIndex.column() > 0)
223 if (role != Qt::DisplayRole)
226 if (orientation == Qt::Horizontal)
228 QStringList headers = d->RootNode->getHeaders();
230 if (section < 0 || section >= headers.size())
233 return headers[section];
244 if (parentIndex.column() > 0)
245 return QModelIndex();
252 qDebug() <<
"DICOMModel::index() failed to get node for index";
253 return QModelIndex();
256 return this->createIndex(row, column, node.get());
263 if (!indexValue.isValid())
264 return QModelIndex();
270 return QModelIndex();
271 if (parentNode == d->RootNode.get())
272 return QModelIndex();
274 return this->createIndex(parentNode->
getRow(), 0, parentNode);
281 if (parentValue.column() > 0)
285 return node->getFetchedChildren().size();
293 this->beginResetModel();
297 d->RootNode = d->createNode(-1, QModelIndex());
299 this->endResetModel();
333 this->beginRemoveRows(
parent, row, row+count-1);
335 for (
int i=row; i<row+count; ++i)
341 this->endRemoveRows();