/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ #include #include #include #include #include #include #include #include #include #include #include #include #include "archivefilewidget.h" #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; //selected files QLabel *l1 = new QLabel(tr("Selected files:")); mFiles = new QTextEdit; 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); //genre combobox QHBoxLayout *genreLayout = new QHBoxLayout; QLabel *l2 = new QLabel(tr("Select genre")); mGenre = new QComboBox; genreLayout->addWidget(l2); genreLayout->addWidget(mGenre); mainLayout->addLayout(genreLayout); //actors mActorWidget = new ActorWidget; mainLayout->addWidget(mActorWidget); //quality and movie title QHBoxLayout *qualityTitleLayout = new QHBoxLayout; QLabel *l4 = new QLabel(tr("Select quality")); mQuality = new QSpinBox; mQuality->setMinimum(0); mQuality->setMaximum(10); QLabel *l5 = new QLabel(tr("Set movie title")); mTitle = new QLineEdit; qualityTitleLayout->addWidget(l4); qualityTitleLayout->addWidget(mQuality); qualityTitleLayout->addWidget(l5); qualityTitleLayout->addWidget(mTitle); mainLayout->addLayout(qualityTitleLayout); //series number and part number QHBoxLayout *numbersLayout = new QHBoxLayout; QLabel *l6 = new QLabel(tr("Select &series number")); mSeriesNo = new QSpinBox; mSeriesNo->setMinimum(-1); mSeriesNo->setMaximum(1000); mSeriesNo->setValue(-1); l6->setBuddy(mSeriesNo); QLabel *l7 = new QLabel(tr("Select &part number")); mPartNo = new QSpinBox; mPartNo->setMinimum(-1); mPartNo->setMaximum(100); mPartNo->setValue(-1); l7->setBuddy(mPartNo); numbersLayout->addWidget(l6); numbersLayout->addWidget(mSeriesNo); numbersLayout->addWidget(l7); numbersLayout->addWidget(mPartNo); numbersLayout->addStretch(); mainLayout->addLayout(numbersLayout); setLayout(mainLayout); setMinimumWidth(600); } void ArchiveFileWidget::setMovieModel(MovieModel *model){ mModel = model; } void ArchiveFileWidget::setGenreModel(ListModel *model){ mGenreModel = model; mGenre->setModel(mGenreModel); } void ArchiveFileWidget::setActorsModel(ListModel *model){ mActorsModel = model; } void ArchiveFileWidget::setFiles(const QStringList &files){ mFileList = files; mFiles->clear(); mMd5Sums.clear(); 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 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(""); mFiles->setHtml(html); mActorWidget->clear(); mTitle->clear(); } const QList ArchiveFileWidget::actorIds() const{ QList retval; foreach(const QString s, mActorWidget->actors()){ QModelIndex idx = mActorsModel->index(s); if(idx.isValid()){ retval << idx.data(ListModel::IdRole).toInt(); } } return retval; } int ArchiveFileWidget::genreId() const{ QString selectedGenre = mGenre->currentText(); QModelIndex idx = mGenreModel->index(selectedGenre); int retval(-1); if(idx.isValid()){ retval = mGenreModel->data(idx, ListModel::IdRole).toInt(); }else{ qDebug() << "genreId: invalid"; } return retval; } void ArchiveFileWidget::setActor(const QString &actor){ mActorWidget->addActor(actor); } void ArchiveFileWidget::setQuality(int quality){ mQuality->setValue(quality); } void ArchiveFileWidget::setMovieTitle(const QString &title){ mTitle->setText(title.toLower().trimmed()); } void ArchiveFileWidget::setSeriesNo(int seriesno){ mSeriesNo->setValue(seriesno); } void ArchiveFileWidget::setPartNo(int partno){ mPartNo->setValue(partno); }