11 #include <QtCore/QString>
12 #include <QtCore/QList>
41 return Qt::ItemIsEnabled;
44 return QAbstractItemModel::flags(index) | Qt::ItemIsEditable;
46 return QAbstractItemModel::flags(index);
57 if (index.column() > 0 && role == Qt::ForegroundRole && !(
flags(index) & Qt::ItemIsEditable))
58 return QColor(Qt::darkGray);
60 if (role == Qt::DisplayRole || role == Qt::EditRole)
64 switch (index.column())
67 return QVariant(QString(
""));
69 return QVariant(QString(
"New Report"));
71 return QVariant(QString(
""));
78 switch (index.column())
81 return QVariant(index.row() + 1);
95 if (role != Qt::DisplayRole)
98 if (orientation == Qt::Horizontal)
103 return QVariant(QString(
"#"));
105 return QVariant(QString(
"Name"));
111 return QString(
"%1").arg(section + 1);
117 if (index.isValid() && role == Qt::EditRole)
123 if (index.data() != value)
137 emit dataChanged(index, index);
146 beginInsertRows(QModelIndex(), position, position + rows - 1);
148 for (
int row = 0; row < rows; ++row)
167 if (pDataModel == NULL)
172 if (pReportList == NULL)
175 beginRemoveRows(QModelIndex(), position, position + rows - 1);
177 for (
int row = 0; row < rows; ++row)
184 std::set< const CCopasiObject * > Tasks;
185 std::set< const CCopasiObject * > DeletedObjects;
186 DeletedObjects.insert(pReport);
190 std::set< const CCopasiObject * >::iterator it = Tasks.begin();
191 std::set< const CCopasiObject * >::iterator end = Tasks.end();
193 for (; it != end; ++it)
200 std::string deletedKey = pReport->
getKey();
201 pReportList->
remove(pReport);
216 assert(pDataModel != NULL);
220 if (pReportList == NULL)
223 QList< CReportDefinition * > Reports;
225 QModelIndexList::const_iterator i;
227 for (i = rows.begin(); i != rows.end(); ++i)
230 Reports.append((*pReportList)[(*i).row()]);
233 QList< CReportDefinition * >::const_iterator j;
235 for (j = Reports.begin(); j != Reports.end(); ++j)
239 size_t delRow = pReportList->
getIndex(pReport);
243 std::set< const CCopasiObject * > DeletedObjects;
244 DeletedObjects.insert(pReport);
246 QMessageBox::StandardButton choice =
251 if (choice == QMessageBox::Ok)
Qt::ItemFlags flags(const QModelIndex &index) const
void notifyGUI(ListViews::ObjectType objectType, ListViews::Action action, const std::string &key="")
const std::string & getObjectName() const
bool appendDependentTasks(std::set< const CCopasiObject * > candidates, std::set< const CCopasiObject * > &dependentTasks) const
CQReportDM(QObject *parent=0)
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const
const CReportDefinitionVector * getReportDefinitionList() const
bool removeRow(int position)
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const
static StandardButton confirmDelete(QWidget *parent, const QString &objectType, const QString &objects, const std::set< const CCopasiObject * > &deletedObjects)
QVariant data(const QModelIndex &index, int role) const
static CCopasiVector< CCopasiDataModel > * getDatamodelList()
QString createNewName(const QString name, const int nameCol)
#define TOTAL_COLS_REPORTS
virtual const std::string & getKey() const
virtual void remove(const size_t &index)
virtual size_t getIndex(const CCopasiObject *pObject) const
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
bool insertRows(int position, int rows, const QModelIndex &index=QModelIndex())
virtual bool isDefaultRow(const QModelIndex &i) const
bool setObjectName(const std::string &name)
bool removeRows(QModelIndexList rows, const QModelIndex &index=QModelIndex())