diff options
author | Arno <arno@disconnect.de> | 2016-09-03 18:26:28 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2016-09-03 18:26:28 +0200 |
commit | b49c6828a92590311712d766d54c15596f13addf (patch) | |
tree | 3af450a307a49b662ce7e11ebd9685f972d6f5f3 | |
parent | bbf802b7d415bb3dd44020e9ff0c657f44da28ea (diff) | |
download | ShemovCleaner-b49c6828a92590311712d766d54c15596f13addf.tar.gz ShemovCleaner-b49c6828a92590311712d766d54c15596f13addf.tar.bz2 ShemovCleaner-b49c6828a92590311712d766d54c15596f13addf.zip |
Make ffprobe and mkvinfo configurable
Need ffprobe for video file infos, maybe mkvinfo, too...
-rw-r--r-- | configurationwidget.cpp | 34 | ||||
-rw-r--r-- | configurationwidget.h | 6 | ||||
-rw-r--r-- | shemovcleaner.cpp | 26 |
3 files changed, 54 insertions, 12 deletions
diff --git a/configurationwidget.cpp b/configurationwidget.cpp index 09a823b..2de4e2a 100644 --- a/configurationwidget.cpp +++ b/configurationwidget.cpp @@ -6,6 +6,7 @@ #include <QHBoxLayout> #include <QVBoxLayout> #include <QLineEdit> +#include <QFileDialog> #include "configurationwidget.h" @@ -28,6 +29,24 @@ ConfigurationWidget::ConfigurationWidget(QWidget *parent, Qt::WindowFlags f) : Q QWidget *dbWidget = new QWidget; dbWidget->setLayout(dbLayout); + //exernal programs + QGridLayout *extL = new QGridLayout; + mFfProbe = new QLineEdit; + extL->addWidget(new QLabel(tr("ffprobe")), 0, 0); + extL->addWidget(mFfProbe, 0, 1); + QPushButton *browseffBtn = new QPushButton(tr("Browse...")); + connect(browseffBtn, SIGNAL(clicked()), this, SLOT(browseff())); + extL->addWidget(browseffBtn, 0, 2); + mMkvInfo = new QLineEdit; + extL->addWidget(new QLabel(tr("mkvinfo")), 1, 0); + extL->addWidget(mMkvInfo, 1, 1); + QPushButton *browsemkvBtn = new QPushButton(tr("Browse...")); + connect(browsemkvBtn, SIGNAL(clicked()), this, SLOT(browsemkv())); + extL->addWidget(browsemkvBtn, 1, 2); + extL->setAlignment(Qt::AlignTop); + QWidget *extWidget = new QWidget; + extWidget->setLayout(extL); + //buttons mAccept = new QPushButton(tr("Save")); connect(mAccept, SIGNAL(clicked()), this, SLOT(accept())); @@ -43,6 +62,7 @@ ConfigurationWidget::ConfigurationWidget(QWidget *parent, Qt::WindowFlags f) : Q QVBoxLayout *mainLayout = new QVBoxLayout; QTabWidget *tab = new QTabWidget; tab->addTab(dbWidget, tr("Database")); + tab->addTab(extWidget, tr("Programs")); mainLayout->addWidget(tab); mainLayout->addLayout(bLayout); readSettings(); @@ -55,13 +75,27 @@ void ConfigurationWidget::accept(){ s.setValue("dbuser", mDbUser->text()); s.setValue("dbpass", mDbPass->text()); s.setValue("dbname", mDbName->text()); + s.setValue("ext/ffprobe", mFfProbe->text()); + s.setValue("ext/mkvinfo", mMkvInfo->text()); QDialog::accept(); } +void ConfigurationWidget::browseff(){ + QString ffprobe = QFileDialog::getOpenFileName(this, tr("Select ffprobe"), QDir::homePath()); + mFfProbe->setText(QDir::toNativeSeparators(ffprobe)); +} + +void ConfigurationWidget::browsemkv(){ + QString mkvinfo = QFileDialog::getOpenFileName(this, tr("Select mkvinfo"), QDir::homePath()); + mMkvInfo->setText(QDir::toNativeSeparators(mkvinfo)); +} + void ConfigurationWidget::readSettings(){ QSettings s; mDbHost->setText(s.value("dbhost").toString()); mDbUser->setText(s.value("dbuser").toString()); mDbPass->setText(s.value("dbpass").toString()); mDbName->setText(s.value("dbname").toString()); + mFfProbe->setText(s.value("ext/ffprobe").toString()); + mMkvInfo->setText(s.value("ext/mkvinfo").toString()); } diff --git a/configurationwidget.h b/configurationwidget.h index d5d6790..526e13b 100644 --- a/configurationwidget.h +++ b/configurationwidget.h @@ -14,12 +14,18 @@ class ConfigurationWidget : public QDialog { public slots: virtual void accept(); + private slots: + void browseff(); + void browsemkv(); + private: void readSettings(); QLineEdit *mDbHost; QLineEdit *mDbUser; QLineEdit *mDbPass; QLineEdit *mDbName; + QLineEdit *mFfProbe; + QLineEdit *mMkvInfo; QPushButton *mAccept; QPushButton *mCancel; }; diff --git a/shemovcleaner.cpp b/shemovcleaner.cpp index ac60fb8..70b44ad 100644 --- a/shemovcleaner.cpp +++ b/shemovcleaner.cpp @@ -144,18 +144,20 @@ void ShemovCleaner::openDatabase(){ QString dbuser = s.value("dbuser").toString(); QString dbpass = s.value("dbpass").toString(); QString dbname = s.value("dbname").toString(); - QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL", "shemovdb"); - db.setHostName(dbhost); - db.setUserName(dbuser); - db.setPassword(dbpass); - db.setDatabaseName(dbname); - if(!db.open()){ - int res = ConfigurationWidget(this).exec(); - if(res == QDialog::Accepted){ - openDatabase(); - }else{ - QMessageBox::critical(this, tr("Error"), tr("Could not open database. Giving up!")); - qApp->closeAllWindows(); + if(!QSqlDatabase::contains("shemovdb")){ + QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL", "shemovdb"); + db.setHostName(dbhost); + db.setUserName(dbuser); + db.setPassword(dbpass); + db.setDatabaseName(dbname); + if(!db.open()){ + int res = ConfigurationWidget(this).exec(); + if(res == QDialog::Accepted){ + openDatabase(); + }else{ + QMessageBox::critical(this, tr("Error"), tr("Could not open database. Giving up!")); + qApp->closeAllWindows(); + } } } } |