From ef93566e66f5c9d52de72e654d4a7dff576f3c42 Mon Sep 17 00:00:00 2001 From: Arno Date: Sun, 20 Feb 2011 10:35:19 +0100 Subject: Show metadata in ArchiveView Added a widget to display metadata beside actors and genres when available --- seriesmetadatamodel.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) (limited to 'seriesmetadatamodel.cpp') diff --git a/seriesmetadatamodel.cpp b/seriesmetadatamodel.cpp index 169db9b..81845e3 100644 --- a/seriesmetadatamodel.cpp +++ b/seriesmetadatamodel.cpp @@ -15,6 +15,11 @@ #include #include #include +#include +#include +#include +#include +#include #include "seriesmetadatamodel.h" #include "smtreeitem.h" @@ -272,3 +277,53 @@ void MetadataWidget::accept(){ mModel->setData(parent, mComment->toPlainText(), row, SeriesMetadataModel::Comment); mModel->update(); } + +MetadataDisplay::MetadataDisplay(QWidget *parent) : QWidget(parent){ + //model + mModel = static_cast(SmGlobals::instance()->model("SeriesMetadata")); + + //display + QGroupBox *gb = new QGroupBox(tr("Metadata")); + QHBoxLayout *gbLayout = new QHBoxLayout; + mDisplay = new QLabel(tr("No metadata available")); + mDisplay->setAlignment(Qt::AlignTop | Qt::AlignHCenter); + mDisplay->setWordWrap(true); + QScrollArea *sa = new QScrollArea; + sa->setWidgetResizable(true); + sa->setWidget(mDisplay); + gbLayout->addWidget(sa); + gb->setLayout(gbLayout); + + //laoyut + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(gb); + setLayout(mainLayout); +} + +void MetadataDisplay::setSeriesPartId(int seriesPartId){ + //setup label + model + if(mModel->hasRecord(seriesPartId)){ + mModel->populate(seriesPartId); + QSettings s; + QColor baseColor = s.value("ui/basecolor").value(); + QString baseHtml = Helper::colorToHtml(baseColor); + QColor alternateColor = s.value("ui/alternatecolor").value(); + QString alternateHtml = Helper::colorToHtml(alternateColor); + QModelIndex mdIdx = mModel->index(0, 0, QModelIndex()); + QList metaData = mModel->dataList(mdIdx); + QString text(""); + text.append(QString(tr("")).arg(baseHtml).arg(QString::number(metaData.at(SeriesMetadataModel::ReleaseYear).toInt()))); + text.append(QString(tr("")).arg(alternateHtml).arg(QString::number(metaData.at(SeriesMetadataModel::Passes).toInt()))); + text.append(QString(tr("")).arg(baseHtml).arg(metaData.at(SeriesMetadataModel::ReleaseGroup).toString())); + text.append(QString(tr("")).arg(alternateHtml).arg(metaData.at(SeriesMetadataModel::SourceMedium).toString())); + text.append(QString(tr("")).arg(baseHtml).arg(metaData.at(SeriesMetadataModel::Subject).toString())); + text.append(QString(tr("")).arg(alternateHtml).arg(metaData.at(SeriesMetadataModel::EncoderOpts).toString())); + QDate dateAdded = metaData.at(SeriesMetadataModel::Added).toDate(); + text.append(QString(tr("")).arg(baseHtml).arg(dateAdded.toString(Qt::ISODate))); + text.append(QString(tr("")).arg(alternateHtml).arg(metaData.at(SeriesMetadataModel::Comment).toString())); + text.append("
Release Year%2
Encoding Passes%2
Release Group%2
Source Medium%2
Usenet Subject%2
Encoder Options%2
Added%2
Comment%2
"); + mDisplay->setText(text); + }else{ + mDisplay->setText(tr("No metadata available")); + } +} -- cgit v1.2.3-70-g09d2