summaryrefslogtreecommitdiffstats
path: root/shemovcleaner.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2016-08-20 18:29:52 +0200
committerArno <arno@disconnect.de>2016-08-20 18:29:52 +0200
commit32afa2c28aabe862bfca44dba24083ffd7db6721 (patch)
tree131e14e7bfb579a09275c1aa7d12d0113c343ab7 /shemovcleaner.cpp
parent96c798d4e9ca91cade25aa6d38176714979685bc (diff)
downloadShemovCleaner-32afa2c28aabe862bfca44dba24083ffd7db6721.tar.gz
ShemovCleaner-32afa2c28aabe862bfca44dba24083ffd7db6721.tar.bz2
ShemovCleaner-32afa2c28aabe862bfca44dba24083ffd7db6721.zip
Added configration dialog
Database connection options are now configurable. Hopefully it doesn't end up in an infinite loop if the credentials are not corrent...
Diffstat (limited to 'shemovcleaner.cpp')
-rw-r--r--shemovcleaner.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/shemovcleaner.cpp b/shemovcleaner.cpp
index fb9b9e6..ec9d6e4 100644
--- a/shemovcleaner.cpp
+++ b/shemovcleaner.cpp
@@ -6,15 +6,21 @@
#include <QMenu>
#include <QMenuBar>
#include <QApplication>
+#include <QSettings>
+#include <QSqlDatabase>
+#include <QMessageBox>
#include "shemovcleaner.h"
#include "torrentwidget.h"
+#include "configurationwidget.h"
ShemovCleaner::ShemovCleaner(QWidget *parent, Qt::WindowFlags f) : QMainWindow(parent, f) {
//general setup
qApp->setWindowIcon(QIcon(":/clean_tampon.png"));
setMinimumWidth(800);
setMinimumHeight(600);
+ openDatabase();
+
mTorrentTab = new TorrentWidget;
mTab = new QTabWidget;
mTab->addTab(mTorrentTab, tr("Torrents"));
@@ -34,6 +40,14 @@ void ShemovCleaner::setSelectionCount(const QString &msg){
mSelected->setText(msg);
}
+void ShemovCleaner::configure(){
+ ConfigurationWidget w(this);
+ int res = w.exec();
+ if(res == QDialog::Accepted){
+ openDatabase();
+ }
+}
+
void ShemovCleaner::createStatusBar(){
QLabel *l1 = new QLabel(tr("Sel."));
mSelected = new QLabel("000/000");
@@ -46,6 +60,9 @@ void ShemovCleaner::createActions(){
//Application
QAction *quitA = new QAction(tr("Quit"), this);
connect(quitA, SIGNAL(triggered()), qApp, SLOT(closeAllWindows()));
+ QAction *configA = new QAction(QIcon(":/chastity_belt.png"), tr("Configure..."), this);
+ connect(configA, SIGNAL(triggered()), this, SLOT(configure()));
+
//TorrentWidget
mTorRefreshA = new QAction(QIcon(":/refresh.png"), tr("Refresh"), this);
connect(mTorRefreshA, SIGNAL(triggered()), mTorrentTab, SLOT(gatherData()));
@@ -64,6 +81,8 @@ void ShemovCleaner::createActions(){
mTorrentTab->toolBar()->addAction(mTorDeleteA);
mTorrentTab->toolBar()->addSeparator();
mTorrentTab->toolBar()->addAction(mTorInfoA);
+ mTorrentTab->toolBar()->addSeparator();
+ mTorrentTab->toolBar()->addAction(configA);
QMenu *torFileM = new QMenu(tr("File"));
torFileM->addAction(mTorDirA);
torFileM->addAction(mTorRefreshA);
@@ -74,6 +93,8 @@ void ShemovCleaner::createActions(){
torEditM->addAction(mTorDeleteA);
torEditM->addAction(mTorMoveA);
torEditM->addSeparator();
+ torEditM->addAction(configA);
+ torEditM->addSeparator();
torEditM->addAction(mTorInfoA);
mTorrentTab->menuBar()->addMenu(torEditM);
mTorrentTab->addAction(mTorInfoA);
@@ -86,6 +107,28 @@ void ShemovCleaner::createActions(){
mTorrentTab->addAction(mTorDirA);
}
+void ShemovCleaner::openDatabase(){
+ QSettings s;
+ QString dbhost = s.value("dbhost").toString();
+ 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();
+ }
+ }
+}
+
QAction *ShemovCleaner::createSeparator(){
QAction *retval = new QAction(this);
retval->setSeparator(true);