summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--movieinfopage.cpp42
-rw-r--r--movieinfopage.h2
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();