summaryrefslogtreecommitdiffstats
path: root/archiveviewwidget.cpp
diff options
context:
space:
mode:
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());