summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-07-29 22:26:54 +0200
committerArno <am@disconnect.de>2010-07-29 22:26:54 +0200
commita493d6500c33a0956e0165ad53136fa6110a7a64 (patch)
tree866d3d8dfb9fd461b90b166270aa8a7ce9385589
parent82789cd9e72688b72add622f27598e9aad879af0 (diff)
downloadSheMov-a493d6500c33a0956e0165ad53136fa6110a7a64.tar.gz
SheMov-a493d6500c33a0956e0165ad53136fa6110a7a64.tar.bz2
SheMov-a493d6500c33a0956e0165ad53136fa6110a7a64.zip
Fix SQL errors
While trying to find out why a newly added SeriesPart won't get selected programmatically, I discovered a not so serious SQL bug. MappingTableModel::addMapping happily tries to execute queries with an invalid seriesPartId. Return if seriesPartId = -1. Now all items expanded previously will be expanded after adding a new movie. (SeriesTreeWidgetT::seriesAdded). Unfortunately the original problem remains unsolved...
-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);
}
}