diff options
author | am <am@f440f766-f032-0410-8965-dc7d17de2ca0> | 2009-11-09 13:53:06 +0000 |
---|---|---|
committer | am <am@f440f766-f032-0410-8965-dc7d17de2ca0> | 2009-11-09 13:53:06 +0000 |
commit | cb507dfbef0e8401c1826a096026c005c50f9784 (patch) | |
tree | eaeeb693c8541e975af5678e5470ffaa7588a96b /editarchiveitemdialog.cpp | |
parent | 7e4fd320c0c74bc45e60de18ac5d2b656aa4d821 (diff) | |
download | SheMov-cb507dfbef0e8401c1826a096026c005c50f9784.tar.gz SheMov-cb507dfbef0e8401c1826a096026c005c50f9784.tar.bz2 SheMov-cb507dfbef0e8401c1826a096026c005c50f9784.zip |
-changed editarchiveitemdialog to actorwidget
-added actor statistics
git-svn-id: file:///var/svn/repos2/shemov/trunk@423 f440f766-f032-0410-8965-dc7d17de2ca0
Diffstat (limited to 'editarchiveitemdialog.cpp')
-rw-r--r-- | editarchiveitemdialog.cpp | 81 |
1 files changed, 18 insertions, 63 deletions
diff --git a/editarchiveitemdialog.cpp b/editarchiveitemdialog.cpp index 20641a5..b10dbb0 100644 --- a/editarchiveitemdialog.cpp +++ b/editarchiveitemdialog.cpp @@ -18,7 +18,6 @@ #include <QSplitter> #include <QApplication> #include <QModelIndex> -//#include <QLocale> #include <QTreeView> #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<QString, QVariant> >(); + QHash<QString, QVariant> actorMap = movie.data(MovieModel::ActorsMap).value<QHash<QString, QVariant> >(); + for(QHash<QString, QVariant>::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("<html><body style=\"color:#CD0003\"><ul>"); - QHash<QString, QVariant>::const_iterator it = mActorMap.constBegin(); - while(it != mActorMap.constEnd()){ - html.append(QString("<li>%1</li>").arg(it.key())); - ++it; - } - html.append("</ul></body></html>"); - 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<QString, QVariant>::const_iterator it = mActorMap.constBegin(); - QList<QVariant> actors; - while(it != mActorMap.constEnd()){ - actors << it.value(); - ++it; + QStringList actors = mActorsDisplay->actors(); + QList<QVariant> 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); |