27 #include "../../datasource/explorer/DataSetGroupItem.h" 34 #include <QMessageBox> 41 m_forceCatalogCache(false)
43 if(datasource.get() !=
nullptr)
85 return item->
data(index.column(), role);
87 catch(
const std::exception& e)
89 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
90 tr(
"TerraLib Qt Components"),
95 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
96 tr(
"TerraLib Qt Components"),
97 tr(
"Unknown error in dataset explorer model!"));
105 if(!parent.isValid())
117 catch(
const std::exception& e)
119 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
120 tr(
"TerraLib Qt Components"),
125 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
126 tr(
"TerraLib Qt Components"),
127 tr(
"Unknown error in dataset explorer model!"));
134 return QAbstractItemModel::flags(index);
139 return QAbstractItemModel::flags(index);
143 return QAbstractItemModel::flags(index) | item->
flags();
145 catch(
const std::exception& e)
147 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
148 tr(
"TerraLib Qt Components"),
153 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
154 tr(
"TerraLib Qt Components"),
155 tr(
"Unknown error in dataset explorer model!"));
158 return QAbstractItemModel::flags(index);
163 if(!parent.isValid())
175 catch(
const std::exception& e)
177 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
178 tr(
"TerraLib Qt Components"),
183 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
184 tr(
"TerraLib Qt Components"),
185 tr(
"Unknown error in dataset explorer model!"));
194 return QModelIndex();
196 if(!parent.isValid())
199 return QModelIndex();
206 if(parentItem ==
nullptr || parentItem->children().empty() || ( row >= parentItem->children().size()))
207 return QModelIndex();
212 return QModelIndex();
214 return createIndex(row, column, item);
220 return QModelIndex();
224 if(item ==
nullptr || item->parent() ==
nullptr)
225 return QModelIndex();
229 if(parentItem ==
nullptr)
230 return QModelIndex();
234 if(grandParentItem ==
nullptr)
237 return createIndex(0, index.column(), parentItem);
242 const QObjectList& items = grandParentItem->children();
246 for(QObjectList::const_iterator it = items.begin(); it != items.end(); ++it, ++i)
248 if((*it) == parentItem)
249 return createIndex(i, index.column(), parentItem);
253 return QModelIndex();
258 if(!parent.isValid())
266 return item->children().count();
284 bool retval = item->
setData(value, role);
286 emit dataChanged(index, index);
296 catch(
const std::exception& e)
298 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
299 tr(
"TerraLib Qt Components"),
304 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
305 tr(
"TerraLib Qt Components"),
306 tr(
"Unknown error in dataset explorer model!"));
324 if(!parent.isValid())
329 for(
int i = 0; i != rows; ++i)
331 QModelIndex idx =
index(i, 0, parent);
333 emit dataChanged(idx, idx);
342 QModelIndex ancestorIndex =
parent(index);
343 if(
parent(index).isValid())
346 while(ancestorIndex.isValid())
348 emit dataChanged(ancestorIndex, ancestorIndex);
349 ancestorIndex =
parent(ancestorIndex);
A simple model for datasets belonging to a data source.
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr