summaryrefslogtreecommitdiffstats
path: root/newmoviewizard.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'newmoviewizard.cpp')
-rw-r--r--newmoviewizard.cpp47
1 files changed, 38 insertions, 9 deletions
diff --git a/newmoviewizard.cpp b/newmoviewizard.cpp
index df5c594..6d21a5b 100644
--- a/newmoviewizard.cpp
+++ b/newmoviewizard.cpp
@@ -81,12 +81,13 @@ void NewMovieWizard::accept(){
if(onDvd){
dvdNo = field("dvdNo").toInt();
}
- int partNo = field("partNo").toInt();
+ //int partNo = field("partNo").toInt();
QHash<QString, int> fileData = wizardModel->files();
QHash<QString, int>::const_iterator it = fileData.constBegin();
while(it != fileData.constEnd()){
QString path = it.key();
int type = it.value();
+ int partNo = wizardModel->filesPart(path);
if(filesModel->addFile(path, type, quality, partNo, seriesPartId, dvdNo)){
QString md5sum = Helper::md5Sum(path);
Helper::moveToArchive(path, md5sum);
@@ -94,7 +95,7 @@ void NewMovieWizard::accept(){
++it;
}
if(onDvd){
- filesModel->addFile(tr("DVD"), FilesTreeModel::Movie, quality, partNo, seriesPartId, dvdNo);
+ filesModel->addFile(tr("DVD"), FilesTreeModel::Movie, quality, -1, seriesPartId, dvdNo);
}
//handle actors
@@ -122,7 +123,7 @@ MovieInfoPage::MovieInfoPage(QWidget *parent) : QWizardPage(parent){
setPixmap(QWizard::LogoPixmap, QPixmap(":/shemov.png"));
//files model setup
- QStringList modelHeaders = QStringList() << tr("File name") << tr("Size") << tr("File Type") << tr("Full path");
+ QStringList modelHeaders = QStringList() << tr("File name") << tr("Size") << tr("File Type") << tr("Part") << tr("Full path");
mFileModel = new WizardTreeModel(modelHeaders, this);
initModel();
@@ -173,7 +174,8 @@ MovieInfoPage::MovieInfoPage(QWidget *parent) : QWizardPage(parent){
QLabel *l4 = new QLabel(tr("&Part no."));
mPartno = new QSpinBox;
l4->setBuddy(mPartno);
- mPartno->setMinimum(1);
+ mPartno->setMinimum(-1);
+ connect(mPartno, SIGNAL(valueChanged(int)), this, SLOT(seriesPartChanged(int)));
numberLayout->addWidget(l4);
numberLayout->addWidget(mPartno);
QLabel *l5 = new QLabel(tr("&Quality"));
@@ -241,7 +243,7 @@ void MovieInfoPage::addFiles(){
if(fi.exists()){
QList<QVariant> itemData;
QModelIndex parent = QModelIndex();
- itemData << fi.fileName() << fi.size() << QVariant() << fi.absoluteFilePath();
+ itemData << fi.fileName() << fi.size() << QVariant() << QVariant() << fi.absoluteFilePath();
QString mimeType = Helper::mimeType(fi.absoluteFilePath());
if(mimeType.startsWith("video")){
itemData[WizardTreeModel::FileType] = WizardTreeModel::Movie;
@@ -297,6 +299,19 @@ void MovieInfoPage::typeChanged(QString type){
}
+void MovieInfoPage::seriesPartChanged(int partNo){
+ QModelIndexList selected = mFileView->selectionModel()->selectedRows();
+ if(selected.isEmpty()){
+ return;
+ }
+ //int partNo = mPartno->value();
+ QModelIndex item = selected.at(0);
+ if(item.data(WizardTreeModel::FileTypeRole).toInt() == WizardTreeModel::Movie){
+ QModelIndex seriesPartIdx = mFileModel->index(item.row(), WizardTreeModel::FilePart, item.parent());
+ mFileModel->setData(seriesPartIdx, partNo, Qt::EditRole);
+ }
+}
+
void MovieInfoPage::setNextDvdNo(){
SeriesTreeModel *seriesTreeModel = static_cast<SeriesTreeModel*>(SmGlobals::instance()->model("SeriesModel"));
int nextdvd = seriesTreeModel->findNextDvdNo();
@@ -304,10 +319,10 @@ void MovieInfoPage::setNextDvdNo(){
}
void MovieInfoPage::initModel(){
- SmTreeItem *root = new SmTreeItem(4);
- mMoviesItem= new SmTreeItem(QList<QVariant>() << tr("Movie files") << QVariant() << QVariant() << QVariant(), root);
+ SmTreeItem *root = new SmTreeItem(5);
+ mMoviesItem= new SmTreeItem(QList<QVariant>() << tr("Movie files") << QVariant() << QVariant() << QVariant() << QVariant(), root);
root->appendChild(mMoviesItem);
- mCoversItem = new SmTreeItem(QList<QVariant>() << tr("Cover files") << QVariant() << QVariant() << QVariant(), root);
+ mCoversItem = new SmTreeItem(QList<QVariant>() << tr("Cover files") << QVariant() << QVariant() << QVariant() << QVariant(), root);
root->appendChild(mCoversItem);
mFileModel->setRoot(root);
}
@@ -341,19 +356,30 @@ Qt::ItemFlags WizardTreeModel::flags(const QModelIndex &index) const{
return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
}
-QHash<QString, int> WizardTreeModel::files() const{
+QHash<QString, int> WizardTreeModel::files() {
QHash<QString, int> retval;
+ mFilePartMap.clear();
SmTreeItem *rootItem = root();
for(int i = 0; i < rootItem->childCount(); ++i){
SmTreeItem *firstChild = rootItem->child(i);
for(int j = 0; j < firstChild->childCount(); ++j){
SmTreeItem *secondChild = firstChild->child(j);
retval.insert(secondChild->data(WizardTreeModel::FullPath).toString(), secondChild->data(WizardTreeModel::FileType).toInt());
+ if(secondChild->data(WizardTreeModel::FilePart).isValid()){
+ mFilePartMap.insert(secondChild->data(WizardTreeModel::FullPath).toString(), secondChild->data(WizardTreeModel::FilePart).toInt());
+ }
}
}
return retval;
}
+int WizardTreeModel::filesPart(const QString &fullPath) const{
+ if(mFilePartMap.contains(fullPath)){
+ return mFilePartMap.value(fullPath);
+ }
+ return -1;
+}
+
QVariant WizardTreeModel::data(const QModelIndex &index, int role) const{
SmTreeItem *item = static_cast<SmTreeItem*>(index.internalPointer());
if(role == Qt::DisplayRole){
@@ -390,6 +416,9 @@ QVariant WizardTreeModel::data(const QModelIndex &index, int role) const{
if(role == FullPathRole){
return item->data(FullPath);
}
+ if(role == FilePartRole){
+ return item->data(FilePart);
+ }
return QVariant();
}