diff options
Diffstat (limited to 'newmoviewizard.cpp')
-rw-r--r-- | newmoviewizard.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/newmoviewizard.cpp b/newmoviewizard.cpp index 427f1ad..8a4e961 100644 --- a/newmoviewizard.cpp +++ b/newmoviewizard.cpp @@ -25,6 +25,8 @@ #include <QHeaderView> #include <QSortFilterProxyModel> #include <QJsonObject> +#include <QRegularExpression> +#include <QDirIterator> #include "newmoviewizard.h" #include "smtreeitem.h" @@ -511,6 +513,34 @@ void MovieInfoPage::addOld(){ oldFileDlg->deleteLater(); } +void MovieInfoPage::guessOld(const QString &fullPath){ + QFileInfo fi(fullPath); + QString baseName = fi.baseName(); + QRegularExpression fnRe(baseName); + QModelIndex parent; + QDirIterator it(fi.dir()); + QList<QVariant> itemData; + while(it.hasNext()){ + QFileInfo curFi = it.next(); + QString curBaseName = curFi.baseName(); + for(int i = 0; i < mFileModel->rowCount(mFileModel->rootIndex()); ++i){ + QModelIndex curIdx = mFileModel->index(i, WizardTreeModel::FileName, mFileModel->rootIndex()); + if(curIdx.isValid()){ + if(fnRe.match(curBaseName).hasMatch()){ + if(curFi.absoluteFilePath() != fi.absoluteFilePath()){ + parent = curIdx; + itemData << curFi.fileName() << curFi.size() << FT_ORIGIN << QVariant() << curFi.absoluteFilePath(); + mOrigins << curFi.absoluteFilePath(); + mFileModel->appendRow(itemData, parent); + break; + } + } + } + } + } + mFileView->expandAll(); +} + void MovieInfoPage::addFiles(){ QSettings s; QString startDir = s.value("paths/addfilespath", QDir::homePath()).toString(); |