From 7ad391f932c9ec33cccf49eff8996ccaf2d303d5 Mon Sep 17 00:00:00 2001 From: Arno Date: Thu, 24 Jun 2010 21:26:44 +0200 Subject: 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 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. --- seriestreemodel.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'seriestreemodel.cpp') 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 SeriesTreeModel::childrenColumnList(const QModelIndex &parent, int column) const{ + if(!parent.isValid()){ + return QList(); + } + SmTreeItem *item = static_cast(parent.internalPointer()); + QList 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; -- cgit v1.2.3-70-g09d2