From 65fec2cecdf8345c7b6b6e8ad5b83d6b5a6dad80 Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 22 Feb 2025 12:32:10 +0100 Subject: Guess actors from filename Continuing to use the filename pattern: use the first capture group split by '&' as possible actors. --- movieinfopage.cpp | 6 +++++- movieinfopage.h | 1 - moviemappingpage.cpp | 7 +++++++ newmoviewizard.h | 3 +++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/movieinfopage.cpp b/movieinfopage.cpp index 4b02b05..22a2b65 100644 --- a/movieinfopage.cpp +++ b/movieinfopage.cpp @@ -28,6 +28,7 @@ #include #include "movieinfopage.h" +#include "newmoviewizard.h" #include "wizardtreemodel.h" #include "smtreeview.h" #include "delegates.h" @@ -249,9 +250,12 @@ bool MovieInfoPage::extractFromTitle(const QString &title){ QString subtitle = titleMatch.captured(2).simplified().toLower(); QDate created = QDate::fromString(titleMatch.captured(3), Qt::ISODate); QStringList actors = titleMatch.captured(1).split('&'); + QStringList aRes; for(const auto &a : std::as_const(actors)){ - mPossbileActors.append(a.simplified().toLower()); + aRes.append(a.simplified().toLower()); } + auto wiz = static_cast(wizard()); + wiz->setPossibleActors(aRes); mSubtitle->setText(subtitle); mCreationDate->setDate(created); return true; diff --git a/movieinfopage.h b/movieinfopage.h index d0354b2..479194e 100644 --- a/movieinfopage.h +++ b/movieinfopage.h @@ -64,7 +64,6 @@ class MovieInfoPage : public QWizardPage { QString mCurTitle; QString mCurSubtitle; QStringList mOrigins; - QStringList mPossbileActors; int mCurSeriesno; int mCurQuality; }; diff --git a/moviemappingpage.cpp b/moviemappingpage.cpp index 8b7c328..e7d8f45 100644 --- a/moviemappingpage.cpp +++ b/moviemappingpage.cpp @@ -10,6 +10,7 @@ #include #include "moviemappingpage.h" +#include "newmoviewizard.h" #include "smglobals.h" MovieMappingPage::MovieMappingPage(const QString &table, QWidget *parent) : QWizardPage(parent), mTable(table){ @@ -35,6 +36,12 @@ void MovieMappingPage::initializePage(){ } mWidget->fillCompleter(actors); mWidget->setDecorationItem(SmGlobals::instance()->iconFor("actor")); + auto wiz = static_cast(wizard()); + QStringList possibleActors = wiz->getPossibleActors(); + if(!possibleActors.empty()){ + mWidget->clear(); + mWidget->setCurrentItems(possibleActors); + } }else if(mTable.toLower() == "genres"){ QStringList genres; QSqlQuery genresQ("SELECT tgenrename FROM genres", db); diff --git a/newmoviewizard.h b/newmoviewizard.h index aef50f5..a8f4908 100644 --- a/newmoviewizard.h +++ b/newmoviewizard.h @@ -20,6 +20,8 @@ class NewMovieWizard : public QWizard { explicit NewMovieWizard(QWidget *parent = nullptr); virtual void accept(); virtual void reject(); + void setPossibleActors(const QStringList &list) { mPossibleActors = list; }; + const QStringList &getPossibleActors() { return mPossibleActors; }; MovieInfoPage *infoPage() { return mInfoPage; } MovieMappingPage *actorPage() { return mActorPage; } MovieMappingPage *genrePage() { return mGenrePage; } @@ -30,6 +32,7 @@ class NewMovieWizard : public QWizard { MovieMappingPage *mActorPage; MovieMappingPage *mGenrePage; MovieMetadataPage *mMetadataPage; + QStringList mPossibleActors; }; #endif -- cgit v1.2.3-70-g09d2