From cb507dfbef0e8401c1826a096026c005c50f9784 Mon Sep 17 00:00:00 2001 From: am Date: Mon, 9 Nov 2009 13:53:06 +0000 Subject: -changed editarchiveitemdialog to actorwidget -added actor statistics git-svn-id: file:///var/svn/repos2/shemov/trunk@423 f440f766-f032-0410-8965-dc7d17de2ca0 --- editarchiveitemdialog.cpp | 81 +++++++++++------------------------------------ 1 file changed, 18 insertions(+), 63 deletions(-) (limited to 'editarchiveitemdialog.cpp') diff --git a/editarchiveitemdialog.cpp b/editarchiveitemdialog.cpp index 20641a5..b10dbb0 100644 --- a/editarchiveitemdialog.cpp +++ b/editarchiveitemdialog.cpp @@ -18,7 +18,6 @@ #include #include #include -//#include #include #include "editarchiveitemdialog.h" @@ -28,6 +27,8 @@ #include "covereditor.h" #include "coveritem.h" #include "fileinfomodel.h" +#include "actorwidget.h" +#include "actormodel.h" EditArchiveItemDialog::EditArchiveItemDialog(ListModel *genre, ListModel *actors, MovieModel *movies, QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f), mGenreModel(genre), mActorsModel(actors), mMovieModel(movies){ QWidget *w1 = new QWidget; @@ -36,9 +37,6 @@ EditArchiveItemDialog::EditArchiveItemDialog(ListModel *genre, ListModel *actors //movie information QLabel *l1 = new QLabel(tr("Movie information")); w1Layout->addWidget(l1); - /*mMovieInfo = new QTextEdit; - mMovieInfo->setReadOnly(true); - mMovieInfo->setFont(QFont("Courier new"));*/ mMovieInfo = new QTreeView; mFileInfoModel = new FileInfoModel; mMovieInfo->setModel(mFileInfoModel); @@ -46,26 +44,12 @@ EditArchiveItemDialog::EditArchiveItemDialog(ListModel *genre, ListModel *actors //actors QLabel *l2 = new QLabel(tr("Select actors")); - mActors = new QComboBox; - mActors->setModel(mActorsModel); QHBoxLayout *actorsLayout = new QHBoxLayout; + mActorsDisplay = new ActorWidget; + mCurrentActors = new ActorModel; actorsLayout->addWidget(l2); - actorsLayout->addWidget(mActors); - w1Layout->addLayout(actorsLayout); - mActorsDisplay = new QTextEdit; - mActorsDisplay->setReadOnly(true); - mActorsDisplay->setFont(QFont("Courier new")); w1Layout->addWidget(mActorsDisplay); - QHBoxLayout *actorButtons = new QHBoxLayout; - mAddActor = new QPushButton(tr("&Add Actor")); - connect(mAddActor, SIGNAL(clicked()), this, SLOT(addActor())); - mRemoveActor = new QPushButton(tr("&Remove Actor")); - connect(mRemoveActor, SIGNAL(clicked()), this, SLOT(removeActor())); - actorButtons->addStretch(); - actorButtons->addWidget(mAddActor); - actorButtons->addWidget(mRemoveActor); - w1Layout->addLayout(actorButtons); - + //genre QLabel *l3 = new QLabel(tr("Select genre")); mGenre = new QComboBox; @@ -155,23 +139,14 @@ void EditArchiveItemDialog::setMovie(const QModelIndex &movie){ return; } mMovieId = movie.data(MovieModel::IdRole).toInt(); - mActorMap = movie.data(MovieModel::ActorsMap).value >(); + QHash actorMap = movie.data(MovieModel::ActorsMap).value >(); + for(QHash::const_iterator it = actorMap.constBegin(); it != actorMap.constEnd(); ++it){ + mActorsDisplay->addActor(it.key()); + } mCovers = movie.data(MovieModel::CoverRole).toList(); - setActors(); setMovieInfo(movie); } -void EditArchiveItemDialog::setActors(){ - QString html("
    "); - QHash::const_iterator it = mActorMap.constBegin(); - while(it != mActorMap.constEnd()){ - html.append(QString("
  • %1
  • ").arg(it.key())); - ++it; - } - html.append("
"); - mActorsDisplay->setHtml(html); -} - void EditArchiveItemDialog::setMovieInfo(const QModelIndex &movie){ QModelIndex idx = mMovieModel->index(movie.row(), MovieItem::Title, QModelIndex()); mTitle->setText(idx.data(MovieModel::TitleBaseRole).toString()); @@ -193,40 +168,20 @@ void EditArchiveItemDialog::setMovieInfo(const QModelIndex &movie){ mMovieInfo->expandAll(); } -void EditArchiveItemDialog::addActor(){ - QString currentText = mActors->currentText(); - QModelIndex idx = mActorsModel->index(currentText); - if(idx.isValid()){ - int id = idx.data(ListModel::IdRole).toInt(); - mActorMap.insert(currentText, id); - setActors(); - } -} - void EditArchiveItemDialog::addActor(const QString &actor){ - int idx = mActors->findText(actor); - if(idx != -1){ - mActors->setCurrentIndex(idx); - addActor(); - } -} - -void EditArchiveItemDialog::removeActor(){ - QString currentText = mActors->currentText(); - if(mActorMap.contains(currentText)){ - mActorMap.remove(currentText); - setActors(); - } + mActorsDisplay->addActor(actor); } void EditArchiveItemDialog::updateMovie(){ - QHash::const_iterator it = mActorMap.constBegin(); - QList actors; - while(it != mActorMap.constEnd()){ - actors << it.value(); - ++it; + QStringList actors = mActorsDisplay->actors(); + QList actorIds; + foreach(QString a, actors){ + QModelIndex idx = mActorsModel->index(a); + if(idx.isValid()){ + actorIds << idx.data(ListModel::IdRole); + } } - mMovieModel->setActors(mMovieId, actors); + mMovieModel->setActors(mMovieId, actorIds); QString genreName = mGenre->currentText(); QModelIndex genreIdx = mGenreModel->index(genreName); QModelIndex genreMovieIndex = mMovieModel->index(mMovieId, MovieItem::Genre); -- cgit v1.2.3-70-g09d2