11 #include <QtCore/QString>
12 #include <QtCore/QList>
40 return Qt::ItemIsEnabled;
43 return QAbstractItemModel::flags(index) | Qt::ItemIsEditable;
45 return QAbstractItemModel::flags(index) | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable;
47 return QAbstractItemModel::flags(index);
58 if (index.column() > 0 && role == Qt::ForegroundRole && !(
flags(index) & Qt::ItemIsEditable))
59 return QColor(Qt::darkGray);
61 if (role == Qt::DisplayRole || role == Qt::EditRole)
65 switch (index.column())
68 return QVariant(QString(
""));
70 return QVariant(QString(
"New Plot"));
73 if (role == Qt::DisplayRole)
76 return QVariant(
true);
79 return QVariant(QString(
""));
86 switch (index.column())
89 return QVariant(index.row() + 1);
99 if (role == Qt::DisplayRole)
107 return index.data(Qt::EditRole).toBool() ? QVariant(Qt::Checked) : QVariant(Qt::Unchecked);
115 if (role != Qt::DisplayRole)
118 if (orientation == Qt::Horizontal)
123 return QVariant(QString(
"#"));
125 return QVariant(QString(
"Name"));
127 return QVariant(QString(
"Nr. of Curves"));
129 return QVariant(QString(
"Active"));
135 return QString(
"%1").arg(section + 1);
141 if (index.isValid() && role == Qt::EditRole)
143 bool changed =
false;
148 if (index.data() != value)
159 switch (index.column())
173 if (pPS->
isActive() != value.toBool())
185 if (defaultRow && this->index(index.row(),
COL_NAME_PLOTS).
data().toString() ==
"plot")
193 emit dataChanged(index, index);
199 QVariant
data = value.toInt() == Qt::Checked ? QVariant(
true) : QVariant(
false);
200 return setData(index, data, Qt::EditRole);
208 beginInsertRows(QModelIndex(), position, position + rows - 1);
210 for (
int row = 0; row < rows; ++row)
226 beginRemoveRows(QModelIndex(), position, position + rows - 1);
228 for (
int row = 0; row < rows; ++row)
232 std::string deletedKey = pPS->CCopasiParameter::getKey();
248 assert(pDataModel != NULL);
255 QList <CPlotSpecification *> pPSs;
256 QModelIndexList::const_iterator i;
259 for (i = rows.begin(); i != rows.end(); ++i)
268 QList <CPlotSpecification *>::const_iterator j;
270 for (j = pPSs.begin(); j != pPSs.end(); ++j)
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const
void notifyGUI(ListViews::ObjectType objectType, ListViews::Action action, const std::string &key="")
const std::string & getObjectName() const
virtual size_t size() const
void setActive(const bool &active)
const bool & isActive() const
CQPlotDM(QObject *parent=0)
QVariant data(const QModelIndex &index, int role) const
bool removeRow(int position)
Qt::ItemFlags flags(const QModelIndex &index) const
bool removeRows(QModelIndexList rows, const QModelIndex &index=QModelIndex())
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const
static CCopasiVector< CCopasiDataModel > * getDatamodelList()
QString createNewName(const QString name, const int nameCol)
bool insertRows(int position, int rows, const QModelIndex &index=QModelIndex())
const COutputDefinitionVector * getPlotDefinitionList() const
const CCopasiVector< CPlotItem > & getItems() const
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
virtual bool isDefaultRow(const QModelIndex &i) const
bool setObjectName(const std::string &name)