diff options
-rw-r--r-- | movieinfopage.cpp | 42 | ||||
-rw-r--r-- | movieinfopage.h | 2 |
2 files changed, 41 insertions, 3 deletions
diff --git a/movieinfopage.cpp b/movieinfopage.cpp index bb1555a..55a5075 100644 --- a/movieinfopage.cpp +++ b/movieinfopage.cpp @@ -22,6 +22,7 @@ #include <QLineEdit> #include <QSpinBox> #include <QFileDialog> +#include <QMessageBox> #include "movieinfopage.h" #include "wizardtreemodel.h" @@ -72,11 +73,19 @@ void MovieInfoPage::setupGui(){ connect(removeFileB, &QPushButton::clicked, this, &MovieInfoPage::removeFile); //movie name + subtitle - QFormLayout *movieTitleLayout = new QFormLayout; + QGridLayout *movieTitleLayout = new QGridLayout; mTitle = new QLineEdit; + movieTitleLayout->addWidget(new QLabel(tr("Movie title")), 0, 0); + movieTitleLayout->addWidget(mTitle, 0, 1, 1, 3); mSubtitle = new QLineEdit; - movieTitleLayout->addRow(tr("Movie &title"), mTitle); - movieTitleLayout->addRow(tr("Movie &subtitle"), mSubtitle); + movieTitleLayout->addWidget(new QLabel(tr("Movie subtitle")), 1, 0); + movieTitleLayout->addWidget(mSubtitle, 1, 1, 1, 1); + QPushButton *lowerCaseB = new QPushButton(QIcon(":/steel_collar.png"), tr("Lower case")); + connect(lowerCaseB, &QPushButton::clicked, this, &MovieInfoPage::toLower); + movieTitleLayout->addWidget(lowerCaseB, 1, 2, 1, 1); + QPushButton *checkB = new QPushButton(QIcon(":/spreadingpants.png"), tr("Fuzzy check...")); + connect(checkB, &QPushButton::clicked, this, &MovieInfoPage::fuzzyCheck); + movieTitleLayout->addWidget(checkB, 1, 3, 1, 1); mSeriesCompleter = new QCompleter(this); mSeriesCompleterModel = new QStringListModel(this); mSeriesCompleter->setModel(mSeriesCompleterModel); @@ -305,3 +314,30 @@ void MovieInfoPage::removeFile(){ } } } + +void MovieInfoPage::toLower(){ + QString newText = mSubtitle->text().toLower().trimmed(); + mSubtitle->setText(newText); +} + +void MovieInfoPage::fuzzyCheck(){ + QString subtitle = mSubtitle->text(); + QStringList res; + QSqlDatabase db = QSqlDatabase::database("treedb"); + db.open(); + QSqlQuery fuzzyQ(db); + fuzzyQ.prepare("SELECT tsubtitle FROM seriesparts WHERE regexp_replace(tsubtitle, '[ .,''!-]', '', 'g') = lower(regexp_replace(:st, '[ .,''!-]', '', 'g'))"); + fuzzyQ.bindValue(":st", subtitle); + fuzzyQ.exec(); + while(fuzzyQ.next()){ + res << fuzzyQ.value(0).toString(); + } + if(!res.isEmpty()){ + QString msg = QString(tr("Already have:<ul>")); + for(int i = 0; i < res.count() && i < 5; ++i){ + msg = msg.append("<li>%1</li>").arg(res.at(i)); + } + msg.append("</ul>"); + QMessageBox::information(this, tr("Matches found!"), msg); + } +} diff --git a/movieinfopage.h b/movieinfopage.h index da9ddf6..9d728d7 100644 --- a/movieinfopage.h +++ b/movieinfopage.h @@ -41,6 +41,8 @@ class MovieInfoPage : public QWizardPage { void addOld(); void addFiles(); void removeFile(); + void toLower(); + void fuzzyCheck(); private: void setupGui(); |