summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mappingtablemodel.cpp3
-rw-r--r--seriestreewidget.cpp11
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);
}
}