diff options
author | Aleks Kissinger <aleks0@gmail.com> | 2018-10-01 17:46:11 +0200 |
---|---|---|
committer | Aleks Kissinger <aleks0@gmail.com> | 2018-10-01 17:46:11 +0200 |
commit | f085393232f29237e7d6bfb1469d77a78e4a511a (patch) | |
tree | 7a7f47a659963f0a8b117982c1e85e1df59fbfe9 /src/data | |
parent | e7a10091b64ddeb1d3e21e3f36abbf412021c815 (diff) |
moving properties up and down
Diffstat (limited to 'src/data')
-rw-r--r-- | src/data/graphelementdata.cpp | 36 | ||||
-rw-r--r-- | src/data/graphelementdata.h | 5 |
2 files changed, 41 insertions, 0 deletions
diff --git a/src/data/graphelementdata.cpp b/src/data/graphelementdata.cpp index 25ba08e..b478842 100644 --- a/src/data/graphelementdata.cpp +++ b/src/data/graphelementdata.cpp @@ -110,6 +110,42 @@ int GraphElementData::indexOfKey(QString key) return -1;
}
+bool GraphElementData::removeRows(int row, int /*count*/, const QModelIndex &parent)
+{
+ if (row >= 0 && row < _properties.length()) {
+ beginRemoveRows(parent, row, row+1);
+ _properties.remove(row);
+ endRemoveRows();
+ return true;
+ } else {
+ return false;
+ }
+}
+
+bool GraphElementData::moveRows(const QModelIndex &sourceParent,
+ int sourceRow,
+ int /*count*/,
+ const QModelIndex &destinationParent,
+ int destinationRow)
+{
+ if (sourceRow >= 0 && sourceRow < _properties.length() &&
+ destinationRow >= 0 && destinationRow <= _properties.length())
+ {
+ beginMoveRows(sourceParent, sourceRow, sourceRow, destinationParent, destinationRow);
+ GraphElementProperty p = _properties[sourceRow];
+ _properties.remove(sourceRow);
+ if (sourceRow < destinationRow) {
+ _properties.insert(destinationRow - 1, p);
+ } else {
+ _properties.insert(destinationRow, p);
+ }
+ endMoveRows();
+ return true;
+ } else {
+ return false;
+ }
+}
+
QVariant GraphElementData::data(const QModelIndex &index, int role) const
{
if (role == Qt::DisplayRole || role == Qt::EditRole) {
diff --git a/src/data/graphelementdata.h b/src/data/graphelementdata.h index acaada7..f48f228 100644 --- a/src/data/graphelementdata.h +++ b/src/data/graphelementdata.h @@ -43,6 +43,11 @@ public: QString property(QString key);
bool atom(QString atom);
int indexOfKey(QString key);
+ bool removeRows(int row, int count, const QModelIndex &parent) override;
+ bool moveRows(const QModelIndex &sourceParent,
+ int sourceRow, int,
+ const QModelIndex &destinationParent,
+ int destinationRow) override;
QVariant data(const QModelIndex &index, int role) const override;
QVariant headerData(int section, Qt::Orientation orientation,
|