From aaef34e66368a2803ae876d734809b69f0c258a2 Mon Sep 17 00:00:00 2001 From: Arno Date: Thu, 27 Jan 2011 13:06:32 +0100 Subject: Finished metadata Created a modes for metadata, revamped NewMovieWizard to use the model and created a MetadataWidget to edit and display metadata. --- newmoviewizard.cpp | 57 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 25 deletions(-) (limited to 'newmoviewizard.cpp') diff --git a/newmoviewizard.cpp b/newmoviewizard.cpp index 1576c55..17fadc8 100644 --- a/newmoviewizard.cpp +++ b/newmoviewizard.cpp @@ -24,8 +24,6 @@ #include #include #include -#include -#include #include #include "newmoviewizard.h" @@ -35,6 +33,7 @@ #include "smglobals.h" #include "mappingtablewidget.h" #include "mappingtablemodel.h" +#include "seriesmetadatamodel.h" #include "filestreemodel.h" #include "helper.h" #include "pictureviewer.h" @@ -140,19 +139,23 @@ void NewMovieWizard::doMetadata(const QModelIndex &idx){ if(!isEnabled){ return; } - QSqlDatabase db = QSqlDatabase::database("treedb"); int seriesPartId = idx.data(SeriesTreeModel::SeriesPartIdRole).toInt(); - QSqlQuery metadataInsert(db); - metadataInsert.prepare("INSERT INTO metadata (iseriespart_id, sireleaseyear, tsourcemedium, tsubject, treleasegroup, tencoderopts, tcomment, sipasses) VALUES(:id, :year, :source, :subject, :group, :enc, :comment, :passes)"); - metadataInsert.bindValue(":id", seriesPartId); - metadataInsert.bindValue(":year", field("year")); - metadataInsert.bindValue(":source", field("source")); - metadataInsert.bindValue(":subject", field("subject")); - metadataInsert.bindValue(":group", field("group")); - metadataInsert.bindValue(":enc", field("encoder")); - metadataInsert.bindValue(":comment", field("comment")); - metadataInsert.bindValue(":passes", field("passes")); - metadataInsert.exec(); + 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(); + } } MovieInfoPage::MovieInfoPage(QWidget *parent) : QWizardPage(parent){ @@ -468,6 +471,7 @@ void MovieMappingPage::initializePage(){ MovieMetadataPage::MovieMetadataPage(QWidget *parent) : QWizardPage(parent){ setTitle(tr("Edit movie metadata")); setSubTitle(tr("Set the movie metadata here, as far as known")); + mModel = static_cast(SmGlobals::instance()->model("SeriesMetadata")); setupGui(); } @@ -521,19 +525,10 @@ void MovieMetadataPage::setupGui(){ } void MovieMetadataPage::initializePage(){ - QSqlDatabase db = QSqlDatabase::database("treedb"); - QSqlQuery relGroupQuery("SELECT DISTINCT(treleasegroup) FROM metadata ORDER BY treleasegroup DESC", db); - QStringList relGroups; - while(relGroupQuery.next()){ - relGroups << relGroupQuery.value(0).toString(); - } + QStringList relGroups = Helper::toStringList(mModel->fieldList(SeriesMetadataModel::ReleaseGroup)); mReleaseGroup->clear(); mReleaseGroup->addItems(relGroups); - QSqlQuery sourceMediumQuery("SELECT DISTINCT(tsourcemedium) FROM metadata ORDER BY tsourcemedium DESC", db); - QStringList sourceMediums; - while(sourceMediumQuery.next()){ - sourceMediums << sourceMediumQuery.value(0).toString(); - } + QStringList sourceMediums = Helper::toStringList(mModel->fieldList(SeriesMetadataModel::SourceMedium)); mSourceMedium->clear(); mSourceMedium->addItems(sourceMediums); mReleaseYear->setValue(QDate::currentDate().year()); @@ -543,6 +538,18 @@ void MovieMetadataPage::initializePage(){ mComment->clear(); } +QString MovieMetadataPage::comment() const { + return mComment->toPlainText(); +} + +QString MovieMetadataPage::releaseGroup() const { + return mReleaseGroup->currentText(); +} + +QString MovieMetadataPage::sourceMedium() const { + return mSourceMedium->currentText(); +} + void MovieMetadataPage::toggleMetadata(int state){ bool isEnabled = (state == Qt::Checked); foreach(QWidget *w, mWidgets){ -- cgit v1.2.3-70-g09d2