diff options
author | Arno <arno@disconnect.de> | 2025-02-22 12:32:10 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2025-02-22 12:32:10 +0100 |
commit | 65fec2cecdf8345c7b6b6e8ad5b83d6b5a6dad80 (patch) | |
tree | 84f63aea2b6af37b3a999732d65a03cfa6ca96f5 | |
parent | a90ed071336371936abb25b6de892c543d3c30cf (diff) | |
download | SheMov-65fec2cecdf8345c7b6b6e8ad5b83d6b5a6dad80.tar.gz SheMov-65fec2cecdf8345c7b6b6e8ad5b83d6b5a6dad80.tar.bz2 SheMov-65fec2cecdf8345c7b6b6e8ad5b83d6b5a6dad80.zip |
Guess actors from filename
Continuing to use the filename pattern: use the first capture group
split by '&' as possible actors.
-rw-r--r-- | movieinfopage.cpp | 6 | ||||
-rw-r--r-- | movieinfopage.h | 1 | ||||
-rw-r--r-- | moviemappingpage.cpp | 7 | ||||
-rw-r--r-- | 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 <QApplication> #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<NewMovieWizard*>(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 <QSettings> #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<NewMovieWizard*>(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 |