return QVariant();
}
+bool SequenceLocationModel::setData(
+ const QModelIndex& index,
+ const QVariant &value,
+ int role
+)
+{
+ bool isInt;
+ int intValue(value.toInt(&isInt));
+ if (index.isValid() and role == Qt::EditRole and isInt) {
+ SequenceLocation& location = sequence_locations[index.row()];
+ switch(index.column()) {
+ case 0:
+ return false;
+ break;
+ case 1:
+ location.setLeft(intValue);
+ break;
+ case 2:
+ location.setRight(intValue);
+ break;
+ default:
+ return false;
+ break;
+ }
+ emit dataChanged(index, index);
+ return true;
+ } else {
+ return false;
+ }
+}
+
+Qt::ItemFlags SequenceLocationModel::flags(const QModelIndex& index) const
+{
+ if (!index.isValid())
+ return Qt::ItemIsEnabled;
+
+ // first column is not editable
+ if (index.column() == 0)
+ return QAbstractItemModel::flags(index);
+ else
+ return QAbstractItemModel::flags(index) | Qt::ItemIsEditable;
+}
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const;
- //bool setData(const QModelIndex& index, const QVariant &value,
- // int role=Qt::EditRole);
- //Qt::ItemFlags flags(const QModelIndex& index) const;
+ bool setData(const QModelIndex& index, const QVariant &value,
+ int role=Qt::EditRole);
+ Qt::ItemFlags flags(const QModelIndex& index) const;
//bool insertRows(int row, int count,
// const QModelIndex& parent=QModelIndex());
- //bool removeRows(int row, int count);
+ //bool removeRows(int row, int count,
// const QModelIndex& parent=QModelIndex());
//! \@}
private: