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. --- seriestreewidget.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'seriestreewidget.cpp') diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index 5415655..a8e13d4 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -60,6 +60,14 @@ SeriesTreeWidget::SeriesTreeWidget(QWidget *parent) : QWidget(parent){ } +QModelIndexList SeriesTreeWidget::mapToSource(const QModelIndexList &indexes) const{ + QModelIndexList retval; + foreach(QModelIndex i, indexes){ + retval << mProxy->mapToSource(i); + } + return retval; +} + void SeriesTreeWidget::newSeries(){ QList data; data << tr("") << QVariant() << QVariant() << QVariant() << SeriesTreeModel::NewSeries; -- cgit v1.2.3-70-g09d2