summaryrefslogtreecommitdiffstats
path: root/mappingtreemodel.h
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2014-06-29 09:41:30 +0200
committerArno <am@disconnect.de>2014-06-29 09:41:30 +0200
commitf295cfb8672d97bb5c804499bdb311a9a0d8039b (patch)
tree77b54514e17d6bb453bd9431707f9f37954c9fc2 /mappingtreemodel.h
parentb5bd9cf0b981ee0c87ead9e20c36247932de7818 (diff)
downloadSheMov-f295cfb8672d97bb5c804499bdb311a9a0d8039b.tar.gz
SheMov-f295cfb8672d97bb5c804499bdb311a9a0d8039b.tar.bz2
SheMov-f295cfb8672d97bb5c804499bdb311a9a0d8039b.zip
Major rework of MappingTreeResultView + Model
Well, I hope this fixes the crashes for good. String comparison for looking up the parents really wasn't a prudent thing to do... Use the ParentIds instead.
Diffstat (limited to 'mappingtreemodel.h')
-rw-r--r--mappingtreemodel.h17
1 files changed, 5 insertions, 12 deletions
diff --git a/mappingtreemodel.h b/mappingtreemodel.h
index efc4e2d..a730aaa 100644
--- a/mappingtreemodel.h
+++ b/mappingtreemodel.h
@@ -33,18 +33,14 @@ class MappingTreeModel : public SmTreeModel {
//data
QVariant data(const QModelIndex &index, int role) const;
QList<QVariant> childList(const QVariant &value, int column = 0) const;
- QStringList path(QModelIndex &idx) const;
- QModelIndex indexFromPath(const QString &path, int column = 0) const;
+ QModelIndex indexFromParentPath(const QList<int> &pPath, bool reverse) const;
bool setData(const QModelIndex &idx, const QVariant &value, int role);
- bool move(const QModelIndex &source, const QModelIndex &dest);
bool addMappingType(const QString &type);
bool deleteMappingType(int typeId);
bool addChild(const QVariant &name, const QModelIndex &parent);
bool renameChild(const QModelIndex &idx, const QString newName);
bool deleteChild(const QModelIndex &idx);
MappingData mappingDataFromIndex(QModelIndex &idx) const;
- QStringList paths() const;
- const QString &forbidden() const { return mForbidden; }
const QSqlError &lastError() const { return mLastError; }
public slots:
@@ -65,7 +61,6 @@ class MappingTreeModel : public SmTreeModel {
void getMappingTypes();
void getChildrenRecursive(SmTreeItem *item);
bool updateChild(SmTreeItem *item, const QVariant &value);
- QStringList getPathsRecursive(SmTreeItem *parent) const;
QList<QVariant> getChildListRecursive(SmTreeItem *item, int column) const;
QString basePath(SmTreeItem *item) const;
int lowerBound(SmTreeItem *item, const QVariant &value, int column = 0) const;
@@ -88,8 +83,8 @@ class MappingTreeResultModel : public SmTreeModel {
//data + flags
Qt::ItemFlags flags(const QModelIndex &index) const;
- bool setData(const QModelIndex &index, const QVariant &value, int role);
- QModelIndex insertChild(const QVariant &data, int mappingId, int parentId, int descId, SmTreeItem *parent);
+ virtual QVariant data(const QModelIndex &index, int role) const;
+ virtual bool setData(const QModelIndex &index, const QVariant &value, int role);
QList<QVariant> columnValues(int column) const;
void clearData();
@@ -105,12 +100,10 @@ struct MappingData {
MappingData();
bool isValid();
int mappingId;
- int parentId;
int descId;
QString name;
- QList<QStringList> path;
+ QList<int> parents;
+ QStringList path;
};
-Q_DECLARE_METATYPE(QList<QStringList>)
-
#endif // MAPPINGTREEMODEL_H