From cb094b007ec5b7c197a7df502a778a2ce919128f Mon Sep 17 00:00:00 2001 From: am Date: Fri, 6 Nov 2009 16:52:04 +0000 Subject: -made burnDir configurable via ConfigurationDialog -revamped archivedialog to make it more intuitive -added simple listModel without database access (should be renamed) -actorlist in archivedialog now is a QTreeView -changed mFileList in achiveFileWidget git-svn-id: file:///var/svn/repos2/shemov/trunk@421 f440f766-f032-0410-8965-dc7d17de2ca0 --- archivefilewidget.cpp | 99 ++++++++++----------------------------------------- 1 file changed, 18 insertions(+), 81 deletions(-) (limited to 'archivefilewidget.cpp') diff --git a/archivefilewidget.cpp b/archivefilewidget.cpp index 4f4ba0c..f9ca5f8 100644 --- a/archivefilewidget.cpp +++ b/archivefilewidget.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include @@ -22,6 +23,7 @@ #include "moviemodel.h" #include "listmodel.h" #include "helper.h" +#include "actorwidget.h" ArchiveFileWidget::ArchiveFileWidget(MovieModel *model, QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f) , mModel(model){ QVBoxLayout *mainLayout = new QVBoxLayout; @@ -32,6 +34,8 @@ ArchiveFileWidget::ArchiveFileWidget(MovieModel *model, QWidget *parent, Qt::Win mFiles->setReadOnly(true); mFiles->setFont(QFont("Courier new")); mFiles->setTextColor(QColor(Qt::red)); + QScrollArea *sa = new QScrollArea; + sa->setWidget(mFiles); mainLayout->addWidget(l1); mainLayout->addWidget(mFiles); @@ -43,31 +47,9 @@ ArchiveFileWidget::ArchiveFileWidget(MovieModel *model, QWidget *parent, Qt::Win genreLayout->addWidget(mGenre); mainLayout->addLayout(genreLayout); - //actors combobox - QHBoxLayout *actorsLayout = new QHBoxLayout; - QLabel *l3 = new QLabel(tr("Select actors")); - mActors = new QComboBox; - actorsLayout->addWidget(l3); - actorsLayout->addWidget(mActors); - mainLayout->addLayout(actorsLayout); - - //selected actors - mSelectedActors = new QTextEdit; - mSelectedActors->setReadOnly(true); - mSelectedActors->setFont(QFont("Courier new")); - mSelectedActors->setTextColor(QColor(Qt::red)); - mainLayout->addWidget(mSelectedActors); - - //actors buttons - QHBoxLayout *actorButtonLayout = 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())); - actorButtonLayout->addStretch(); - actorButtonLayout->addWidget(mAddActor); - actorButtonLayout->addWidget(mRemoveActor); - mainLayout->addLayout(actorButtonLayout); + //actors + mActorWidget = new ActorWidget; + mainLayout->addWidget(mActorWidget); //quality and movie title QHBoxLayout *qualityTitleLayout = new QHBoxLayout; @@ -119,38 +101,37 @@ void ArchiveFileWidget::setGenreModel(ListModel *model){ void ArchiveFileWidget::setActorsModel(ListModel *model){ mActorsModel = model; - mActors->setModel(mActorsModel); } void ArchiveFileWidget::setFiles(const QStringList &files){ mFileList = files; mFiles->clear(); mMd5Sums.clear(); - mActorIdMap.clear(); - QString html(""); QLocale l; + QString html(""); foreach(QString f, files){ QFileInfo info(f); qint64 size = info.size(); QString md5 = Helper::md5Sum(f); QString filename = info.fileName(); QString mimeType = Helper::mimeType(f); - QString row = QString("").arg(filename).arg(l.toString(size)).arg(md5).arg(mimeType); - html.append(row); + QString file = QString("

%1

  • Size: %2
  • MD5-Sum: %3
  • Mime Type: %4
").arg(filename).arg(l.toString(size)).arg(md5).arg(mimeType); + html.append(file); mMd5Sums.insert(f, md5); } - html.append("
FilenameSizeMD5-SumMime type
%1%2%3%4
"); + html.append(""); mFiles->setHtml(html); - mSelectedActors->clear(); + mActorWidget->clear(); mTitle->clear(); } const QList ArchiveFileWidget::actorIds() const{ - QHash::const_iterator i = mActorIdMap.constBegin(); QList retval; - while(i != mActorIdMap.constEnd()){ - retval << i.value(); - ++i; + foreach(const QString s, mActorWidget->actors()){ + QModelIndex idx = mActorsModel->index(s); + if(idx.isValid()){ + retval << idx.data(ListModel::IdRole).toInt(); + } } return retval; } @@ -168,11 +149,7 @@ int ArchiveFileWidget::genreId() const{ } void ArchiveFileWidget::setActor(const QString &actor){ - int idx = mActors->findText(actor); - if(idx != -1){ - mActors->setCurrentIndex(idx); - addActor(); - } + mActorWidget->addActor(actor); } void ArchiveFileWidget::setQuality(int quality){ @@ -191,43 +168,3 @@ void ArchiveFileWidget::setPartNo(int partno){ mPartNo->setValue(partno); } -void ArchiveFileWidget::addActor(){ - QString selectedActor = mActors->currentText(); - if(!selectedActor.isEmpty() && !mActorIdMap.contains(selectedActor)){ - QModelIndex idx = mActorsModel->index(selectedActor); - if(idx.isValid()){ - int id = mActorsModel->data(idx, ListModel::IdRole).toInt(); - mActorIdMap.insert(selectedActor, id); - createActorList(); - QString message = QString(tr("Added actor %1 to actor list")).arg(selectedActor); - emit statusbarMessage(message); - }else{ - qDebug() << "addActor: invalid!"; - } - } -} - -void ArchiveFileWidget::removeActor(){ - QString selectedActor = mActors->currentText(); - if(!selectedActor.isEmpty()){ - mActorIdMap.remove(selectedActor); - createActorList(); - QString message = QString(tr("Removed actor %1 from actor list")).arg(selectedActor); - emit statusbarMessage(message); - } -} - -void ArchiveFileWidget::createActorList(){ - mSelectedActors->clear(); - QString html("
    "); - mSelectedActors->append("
      "); - QHash::const_iterator i = mActorIdMap.constBegin(); - while(i != mActorIdMap.constEnd()){ - QString s = QString("
    • %1
    • ").arg(i.key()); - html.append(s); - ++i; - } - html.append("
    "); - mSelectedActors->setHtml(html); -} - -- cgit v1.2.3-70-g09d2