27 #include "../../../../dataaccess/Enums.h"
28 #include "../../datasource/explorer/DataSetCategoryGroupItem.h"
35 #include <QMessageBox>
39 : QAbstractItemModel(parent),
42 m_forceCatalogCache(false)
44 if(datasource.get() != 0)
76 if(role == Qt::CheckStateRole && !m_checkable)
86 return item->
data(index.column(), role);
88 catch(
const std::exception& e)
90 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
91 tr(
"TerraLib Qt Components"),
96 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
97 tr(
"TerraLib Qt Components"),
98 tr(
"Unknown error in dataset explorer model!"));
106 if(!parent.isValid())
118 catch(
const std::exception& e)
120 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
121 tr(
"TerraLib Qt Components"),
126 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
127 tr(
"TerraLib Qt Components"),
128 tr(
"Unknown error in dataset explorer model!"));
135 return QAbstractItemModel::flags(index);
140 return QAbstractItemModel::flags(index);
144 return QAbstractItemModel::flags(index) | item->
flags();
146 catch(
const std::exception& e)
148 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
149 tr(
"TerraLib Qt Components"),
154 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
155 tr(
"TerraLib Qt Components"),
156 tr(
"Unknown error in dataset explorer model!"));
159 return QAbstractItemModel::flags(index);
166 if(!parent.isValid())
176 catch(
const std::exception& e)
178 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
179 tr(
"TerraLib Qt Components"),
184 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
185 tr(
"TerraLib Qt Components"),
186 tr(
"Unknown error in dataset explorer model!"));
195 return QModelIndex();
197 if(!parent.isValid())
200 return QModelIndex();
204 return createIndex(row, column, item);
209 if(parentItem == 0 || parentItem->children().empty())
210 return QModelIndex();
215 return QModelIndex();
217 return createIndex(row, column, item);
223 return QModelIndex();
227 if(item == 0 || item->parent() == 0)
228 return QModelIndex();
233 return QModelIndex();
237 if(grandParentItem == 0)
240 return createIndex(0, index.column(), parentItem);
245 const QObjectList& items = grandParentItem->children();
249 for(QObjectList::const_iterator it = items.begin(); it != items.end(); ++it, ++i)
251 if((*it) == parentItem)
252 return createIndex(i, index.column(), parentItem);
256 return QModelIndex();
261 if(!parent.isValid())
269 return item->children().count();
277 if(role == Qt::CheckStateRole && !m_checkable)
287 bool retval = item->
setData(value, role);
289 emit dataChanged(index, index);
293 catch(
const std::exception& e)
295 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
296 tr(
"TerraLib Qt Components"),
301 QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
302 tr(
"TerraLib Qt Components"),
303 tr(
"Unknown error in dataset explorer model!"));
311 m_checkable = checkable;
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr