summaryrefslogtreecommitdiffstats
path: root/archiveviewwidget.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-05-30 10:29:47 +0200
committerArno <am@disconnect.de>2010-05-30 10:29:47 +0200
commit9a1ec955d9ce339e6b89714488bb866ae43bb397 (patch)
treee9df2c0c37821a1e4d9c670afcae2cfb298bdf1e /archiveviewwidget.cpp
parent51631c5726cc770e2802bb746954819f2a892310 (diff)
downloadSheMov-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.cpp35
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());