From d9d32f44d64834754650fc4fe70a4d7aae449e0c Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 9 Jul 2010 21:07:10 +0200 Subject: Final version of NewMovieWizard::accept() (hopefully) Actually made this function work. Forgot to handle actors and genres. Also several bugfixes in other parts: -fix typo in FilesTreeModel query -commit changes ind MappingTableModel::addItem, making the genre and actor widgets work as intended -remove redundant MappingTableModel::find(), already implemented in SmTreeModel -call next() instead of exec() in SeriesTreeModel::addSeriesPart. Query is already executing if it's a select -use QModelIndex::row() instead of column() in MappingTableWidget::removeItem() -add partNo to layout in MovieInfopage::MovieInfoPage() -add convenience function setMappings() to MappingTableModel --- mappingtablemodel.cpp | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'mappingtablemodel.cpp') 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(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(); -- cgit v1.2.3-70-g09d2