diff options
-rw-r--r-- | mappingtablemodel.cpp | 3 | ||||
-rw-r--r-- | seriestreewidget.cpp | 11 |
2 files changed, 12 insertions, 2 deletions
diff --git a/mappingtablemodel.cpp b/mappingtablemodel.cpp index bcb601e..65221e4 100644 --- a/mappingtablemodel.cpp +++ b/mappingtablemodel.cpp @@ -163,6 +163,9 @@ bool MappingTableModel::removeItem(const QModelIndex &idx){ } bool MappingTableModel::addMapping(int seriesPartId, int itemId){ + if(seriesPartId == -1){ + return false; + } mDb.transaction(); mAddMappingQuery->bindValue(":id1", seriesPartId); mAddMappingQuery->bindValue(":id2", itemId); diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index 7e60c53..35276a1 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -77,7 +77,7 @@ void SeriesTreeWidget::newSeries(){ QModelIndex newRow = mModel->index(mModel->rowCount(QModelIndex()) - 1, 0, QModelIndex()); if(newRow.isValid()){ QModelIndex proxyIndex = mProxy->mapFromSource(newRow); - mView->selectionModel()->setCurrentIndex(proxyIndex, QItemSelectionModel::ClearAndSelect); + mView->selectionModel()->select(proxyIndex, QItemSelectionModel::ClearAndSelect); mView->edit(proxyIndex); } } @@ -86,6 +86,10 @@ void SeriesTreeWidget::newSeries(){ void SeriesTreeWidget::seriesAdded(QString seriesName, int seriesPart, bool resort){ if(resort){ mProxy->invalidate(); + foreach(QString e, mExpandedItems){ + QModelIndex idx = mProxy->mapFromSource(mModel->findValue(e)); + mView->expand(idx); + } } QModelIndex destIdx = mModel->findValue(seriesName); if(destIdx.isValid()){ @@ -96,7 +100,10 @@ void SeriesTreeWidget::seriesAdded(QString seriesName, int seriesPart, bool reso } if(destIdx.isValid()){ QModelIndex proxyIndex = mProxy->mapFromSource(destIdx); - mView->selectionModel()->setCurrentIndex(proxyIndex, QItemSelectionModel::ClearAndSelect); + if(destIdx.parent().isValid()){ + mView->expand(destIdx); + } + mView->selectionModel()->select(proxyIndex, QItemSelectionModel::ClearAndSelect); } } |