From 94e7da1400e59256f41f72b4592d4a9df1cca5a0 Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 8 Jul 2011 10:03:14 +0200 Subject: Turn metadata display into a QTreeView This wasn't as easy as it sounds. I had to completely redesign the SeriesMetadataModel. Now it's a hybrid between a ListModel and a TreeModel. The actual data is held in a QList, the tree is only for display. --- newmoviewizard.cpp | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'newmoviewizard.cpp') diff --git a/newmoviewizard.cpp b/newmoviewizard.cpp index e479a33..f482d57 100644 --- a/newmoviewizard.cpp +++ b/newmoviewizard.cpp @@ -166,20 +166,18 @@ void NewMovieWizard::doMetadata(const QModelIndex &idx){ int seriesPartId = idx.data(SeriesTreeModel::SeriesPartIdRole).toInt(); SeriesMetadataModel *metadataModel = static_cast(SmGlobals::instance()->model("SeriesMetadata")); metadataModel->populate(seriesPartId); - QModelIndex curIdx = metadataModel->find(seriesPartId, SeriesMetadataModel::SeriesPartId); - if(idx.isValid()){ - QModelIndex parent = curIdx.parent(); - int row = curIdx.row(); - metadataModel->setData(parent, field("year"), row, SeriesMetadataModel::ReleaseYear); - metadataModel->setData(parent, mMetadataPage->sourceMedium(), row, SeriesMetadataModel::SourceMedium); - metadataModel->setData(parent, field("subject"), row, SeriesMetadataModel::Subject); - metadataModel->setData(parent, mMetadataPage->releaseGroup(), row, SeriesMetadataModel::ReleaseGroup); - metadataModel->setData(parent, field("encoder"), row, SeriesMetadataModel::EncoderOpts); - metadataModel->setData(parent, mMetadataPage->comment(), row, SeriesMetadataModel::Comment); - metadataModel->setData(parent, field("passes"), row, SeriesMetadataModel::Passes); - metadataModel->setData(parent, QDate::currentDate(), row, SeriesMetadataModel::Added); - metadataModel->update(); - } + QList metaData; + for(int i = 0; i < metadataModel->numFields(); ++i){ + metaData << QVariant(); + } + metaData[SeriesMetadataModel::ReleaseYear] = field("year"); + metaData[SeriesMetadataModel::Subject] = field("subject"); + metaData[SeriesMetadataModel::EncoderOpts] = field("encoder"); + metaData[SeriesMetadataModel::Passes] = field("passes"); + metaData[SeriesMetadataModel::SourceMedium] = mMetadataPage->sourceMedium(); + metaData[SeriesMetadataModel::ReleaseGroup] = mMetadataPage->releaseGroup(); + metaData[SeriesMetadataModel::Added] = QDate::currentDate(); + metadataModel->setAllData(seriesPartId, metaData); } MovieInfoPage::MovieInfoPage(QWidget *parent) : QWizardPage(parent){ -- cgit v1.2.3-70-g09d2