summaryrefslogtreecommitdiffstats
path: root/editarchiveitemdialog.cpp
diff options
context:
space:
mode:
authoram <am@f440f766-f032-0410-8965-dc7d17de2ca0>2009-11-09 13:53:06 +0000
committeram <am@f440f766-f032-0410-8965-dc7d17de2ca0>2009-11-09 13:53:06 +0000
commitcb507dfbef0e8401c1826a096026c005c50f9784 (patch)
treeeaeeb693c8541e975af5678e5470ffaa7588a96b /editarchiveitemdialog.cpp
parent7e4fd320c0c74bc45e60de18ac5d2b656aa4d821 (diff)
downloadSheMov-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.cpp81
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);