/* 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" #include "fileinfomodel.h" #include "listmodelsingleton.h" #include "moviemodelsingleton.h" ArchiveFileWidget::ArchiveFileWidget(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f){ //setup mModel = MovieModelSingleton::instance(); mGenreModel = ListModelSingleton::instance()->model("genre"); mActorsModel = ListModelSingleton::instance()->model("actor"); QVBoxLayout *mainLayout = new QVBoxLayout; //selected files QLabel *l1 = new QLabel(tr("Selected files:")); mFiles = new QTreeView; mFiles->setHeaderHidden(true); mInfoModel = new FileInfoModel(this); mFiles->setModel(mInfoModel); mainLayout->addWidget(l1); mainLayout->addWidget(mFiles); //genre combobox QHBoxLayout *genreLayout = new QHBoxLayout; QLabel *l2 = new QLabel(tr("Select genre")); mGenre = new QComboBox; mGenre->setModel(mGenreModel); int idx = mGenre->findText("shemale"); if(idx != -1){ mGenre->setCurrentIndex(idx); } 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::setFiles(const QStringList &files){ mFileList = files; mInfoModel->clear(); mInfoModel->addFiles(files); mFiles->expandAll(); mFiles->resizeColumnToContents(0); 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(); } 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); }