diff options
author | Arno <am@disconnect.de> | 2010-05-30 10:29:47 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2010-05-30 10:29:47 +0200 |
commit | 9a1ec955d9ce339e6b89714488bb866ae43bb397 (patch) | |
tree | e9df2c0c37821a1e4d9c670afcae2cfb298bdf1e /archiveviewwidget.cpp | |
parent | 51631c5726cc770e2802bb746954819f2a892310 (diff) | |
download | SheMov-9a1ec955d9ce339e6b89714488bb866ae43bb397.tar.gz SheMov-9a1ec955d9ce339e6b89714488bb866ae43bb397.tar.bz2 SheMov-9a1ec955d9ce339e6b89714488bb866ae43bb397.zip |
Implemented copying of movie data
Added function to copy actors, covers, genre, dvd and quality to other
parts of the same movie if movie has multiple files.
Diffstat (limited to 'archiveviewwidget.cpp')
-rw-r--r-- | archiveviewwidget.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/archiveviewwidget.cpp b/archiveviewwidget.cpp index 9aa1164..062d090 100644 --- a/archiveviewwidget.cpp +++ b/archiveviewwidget.cpp @@ -32,6 +32,7 @@ #include "moviepropertiesdialog.h" #include "addmoviewizard.h" #include "archiveitemeditdialog.h" +#include "coveritem.h" ArchiveViewWidget::ArchiveViewWidget(MovieModel *model, ListModel *genre, ListModel *actors, QWidget *parent) : QWidget(parent), mMovieModel(model), mGenreModel(genre), mActorsModel(actors), mSize(0){ //filter bar @@ -262,6 +263,40 @@ void ArchiveViewWidget::playSelected(const QString &player){ QProcess::startDetached(prog, args); } +void ArchiveViewWidget::copyToParts(){ + QModelIndex idx = getSourceColumnZero(); + QVariant quality = idx.data(MovieModel::QualityRole); + QVariant dvdno = idx.data(MovieModel::DvdRole); + QVariant genre = idx.data(MovieModel::GenreRole); + QHash<QString, QVariant> actorMap = idx.data(MovieModel::ActorsMap).toHash(); + QList<QVariant> actorIds; + foreach(QVariant id, actorMap.values()){ + actorIds << id.toInt(); + } + QList<CoverItem> covers; + foreach(QVariant cover, idx.data(MovieModel::CoverRole).toList()){ + covers << cover.value<CoverItem>(); + } + QList<QVariant> otherParts = idx.data(MovieModel::OtherPartsRole).toList(); + if(otherParts.isEmpty()){ + statusbarMessage(tr("No other parts found.")); + return; + } + foreach(QVariant part, otherParts){ + int id = part.toInt(); + QModelIndex movieModelIndex = mMovieModel->index(id, MovieItem::Genre); + mMovieModel->setDataAt(movieModelIndex, genre); + movieModelIndex = mMovieModel->index(id, MovieItem::Quality); + mMovieModel->setDataAt(movieModelIndex, quality); + movieModelIndex = mMovieModel->index(id, MovieItem::Dvd); + mMovieModel->setDataAt(movieModelIndex, dvdno); + mMovieModel->setActors(id, actorIds); + mMovieModel->setCovers(id, covers); + } + QString message = QString(tr("Copied data to %1 movie(s)")).arg(otherParts.count()); + statusbarMessage(message); +} + void ArchiveViewWidget::rowChanged(const QModelIndex &/*current*/, const QModelIndex & /*prev*/){ QModelIndex idx = getSourceColumnZero(); mWindowTitle = QString(tr("%1 - %2")).arg(qApp->applicationName()).arg(idx.data().toString()); |