summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2016-09-03 18:26:28 +0200
committerArno <arno@disconnect.de>2016-09-03 18:26:28 +0200
commitb49c6828a92590311712d766d54c15596f13addf (patch)
tree3af450a307a49b662ce7e11ebd9685f972d6f5f3
parentbbf802b7d415bb3dd44020e9ff0c657f44da28ea (diff)
downloadShemovCleaner-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.cpp34
-rw-r--r--configurationwidget.h6
-rw-r--r--shemovcleaner.cpp26
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();
+ }
}
}
}