summaryrefslogtreecommitdiffstats
path: root/seriestreemodel.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-06-24 21:26:44 +0200
committerArno <am@disconnect.de>2010-06-24 21:26:44 +0200
commit7ad391f932c9ec33cccf49eff8996ccaf2d303d5 (patch)
tree0d6afdf4c4d69505a122c842424f9f9def7a7a8c /seriestreemodel.cpp
parent32243b83a02e479e772d7d6fd94ddc35fd7d6880 (diff)
downloadSheMov-7ad391f932c9ec33cccf49eff8996ccaf2d303d5.tar.gz
SheMov-7ad391f932c9ec33cccf49eff8996ccaf2d303d5.tar.bz2
SheMov-7ad391f932c9ec33cccf49eff8996ccaf2d303d5.zip
Made FilesTreeWidget work
It wasn't as easy as I thought. Quite big changes: 1. I changed the query for setIds in FilesTreeModel. Initially it executed a database query for every id. Changed it to WHERE seriespart_id IN (ids). I didn't have a chance to test the first version, but this one is blazing fast. 2. Fixed a recursio ad infinitum in FilesTreeModel. This happens if you call data() from data(). Either use the *item or use a role different from what you've been called. 3. Introduce a new function in SeriesTreeModel: QList<QVariant> childrenColumnList. It returns a QList from the children values of the given column. 4. Lot's of UI changes. Hide unneded columns, align the remaining ones properly. What doesn't work: we can't let the database do the sorting of files. We need a proxy for this.
Diffstat (limited to 'seriestreemodel.cpp')
-rw-r--r--seriestreemodel.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/seriestreemodel.cpp b/seriestreemodel.cpp
index 122c163..2cda1d0 100644
--- a/seriestreemodel.cpp
+++ b/seriestreemodel.cpp
@@ -141,6 +141,19 @@ bool SeriesTreeModel::setData(const QModelIndex &index, const QVariant &value, i
return false;
}
+QList<QVariant> SeriesTreeModel::childrenColumnList(const QModelIndex &parent, int column) const{
+ if(!parent.isValid()){
+ return QList<QVariant>();
+ }
+ SmTreeItem *item = static_cast<SmTreeItem*>(parent.internalPointer());
+ QList<QVariant> retval;
+ for(int i = 0; i < item->childCount(); ++i){
+ SmTreeItem *child = item->child(i);
+ retval << child->data(column);
+ }
+ return retval;
+}
+
QModelIndex SeriesTreeModel::findValue(const QVariant &value, const QModelIndex &parent, int column) const{
SmTreeItem *parentItem = root();
if(parent != QModelIndex()){
@@ -199,6 +212,7 @@ QFileInfoList SeriesTreeModel::findMovies(const QModelIndexList &from) const{
return retval;
}
+
bool SeriesTreeModel::deleteFromSeries(const QModelIndex &what){
int nodeType = what.data(TypeRole).toInt();
QSqlQuery *query = 0;