summaryrefslogtreecommitdiffstats
path: root/mappingtablemodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mappingtablemodel.cpp')
-rw-r--r--mappingtablemodel.cpp26
1 files changed, 14 insertions, 12 deletions
diff --git a/mappingtablemodel.cpp b/mappingtablemodel.cpp
index ad569ee..bcb601e 100644
--- a/mappingtablemodel.cpp
+++ b/mappingtablemodel.cpp
@@ -106,18 +106,19 @@ bool MappingTableModel::contains(const QString &value) const{
return mItemNames.contains(value);
}
-QModelIndex MappingTableModel::find(const QVariant &value, int column, const QModelIndex &parent) const{
- SmTreeItem *parentItem = root();
- if(parent.isValid()){
- parentItem = static_cast<SmTreeItem*>(parent.internalPointer());
- }
- for(int i = 0; i < parentItem->childCount(); ++i){
- SmTreeItem *cur = parentItem->child(i);
- if(cur->data(column) == value){
- return index(i, column, parent);
+void MappingTableModel::setMappings(const QStringList &itemNames, int seriesPartId){
+ if(seriesPartId == -1){
+ return;
+ }
+ foreach(const QString name, itemNames){
+ QModelIndex itemIdx = find(name);
+ if(!itemIdx.isValid()){
+ addItem(name);
}
+ itemIdx = find(name);
+ int itemId = itemIdx.data(ItemIdRole).toInt();
+ addMapping(seriesPartId, itemId);
}
- return QModelIndex();
}
bool MappingTableModel::addItem(const QVariant &name){
@@ -136,6 +137,7 @@ bool MappingTableModel::addItem(const QVariant &name){
data << newValue << newId;
addRow(data, QModelIndex());
mItemNames << newValue;
+ mDb.commit();
emit needResort();
return true;
}
@@ -160,9 +162,9 @@ bool MappingTableModel::removeItem(const QModelIndex &idx){
return false;
}
-bool MappingTableModel::addMapping(int seriesId, int itemId){
+bool MappingTableModel::addMapping(int seriesPartId, int itemId){
mDb.transaction();
- mAddMappingQuery->bindValue(":id1", seriesId);
+ mAddMappingQuery->bindValue(":id1", seriesPartId);
mAddMappingQuery->bindValue(":id2", itemId);
if(!mAddMappingQuery->exec()){
mDb.rollback();