summaryrefslogtreecommitdiffstats
path: root/configurationwidget.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2018-01-04 08:04:10 +0100
committerArno <arno@disconnect.de>2018-01-04 08:04:10 +0100
commit3c648fed56a6c7a9f40353d95f4eff5baaecaf76 (patch)
tree6e9aca61b614bc45e9c81078cd01cb7b1784bcd1 /configurationwidget.cpp
parent73eaf29a9fcc501adb66c08bc2741ecdc10251f8 (diff)
downloadShemovCleaner-3c648fed56a6c7a9f40353d95f4eff5baaecaf76.tar.gz
ShemovCleaner-3c648fed56a6c7a9f40353d95f4eff5baaecaf76.tar.bz2
ShemovCleaner-3c648fed56a6c7a9f40353d95f4eff5baaecaf76.zip
Implement DirSelectionWidget
This Widget lets you select a list of directories. It's basically about code reuse. We're gonna need this later when implementing the favorite directories feature.
Diffstat (limited to 'configurationwidget.cpp')
-rw-r--r--configurationwidget.cpp73
1 files changed, 5 insertions, 68 deletions
diff --git a/configurationwidget.cpp b/configurationwidget.cpp
index b68a069..1f12377 100644
--- a/configurationwidget.cpp
+++ b/configurationwidget.cpp
@@ -7,11 +7,9 @@
#include <QVBoxLayout>
#include <QLineEdit>
#include <QFileDialog>
-#include <QStandardItemModel>
-#include <QListView>
-#include <QItemSelectionModel>
#include "configurationwidget.h"
+#include "dirselectionwidget.h"
ConfigurationWidget::ConfigurationWidget(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) {
//database setup
@@ -58,31 +56,7 @@ ConfigurationWidget::ConfigurationWidget(QWidget *parent, Qt::WindowFlags f) : Q
extWidget->setLayout(extL);
//copy directories
- QHBoxLayout *newDirL = new QHBoxLayout;
- newDirL->addWidget(new QLabel(tr("Directory")));
- mDir = new QLineEdit;
- newDirL->addWidget(mDir);
- QPushButton *browseCopyDirBtn = new QPushButton(tr("Browse..."));
- connect(browseCopyDirBtn, SIGNAL(clicked()), this, SLOT(browseCopyDir()));
- newDirL->addWidget(browseCopyDirBtn);
- QPushButton *addDir = new QPushButton(tr("Add"));
- connect(addDir, SIGNAL(clicked()), this, SLOT(addCopyDir()));
- QPushButton *removeDir = new QPushButton(tr("Remove"));
- connect(removeDir, SIGNAL(clicked()), this, SLOT(removeCopyDir()));
- QHBoxLayout *addRemL = new QHBoxLayout;
- addRemL->addStretch();
- addRemL->addWidget(addDir);
- addRemL->addWidget(removeDir);
- mCopyDirM = new QStandardItemModel;
- mCopyDirV = new QListView;
- mCopyDirV->setModel(mCopyDirM);
- connect(mCopyDirV->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(selectCopyDir(QModelIndex,QModelIndex)));
- QVBoxLayout *newDirTabL = new QVBoxLayout;
- newDirTabL->addLayout(newDirL);
- newDirTabL->addLayout(addRemL);
- newDirTabL->addWidget(mCopyDirV);
- QWidget *dirWidget = new QWidget;
- dirWidget->setLayout(newDirTabL);
+ mCopyDirW = new DirSelectionWidget;
//buttons
mAccept = new QPushButton(tr("Save"));
@@ -100,7 +74,7 @@ ConfigurationWidget::ConfigurationWidget(QWidget *parent, Qt::WindowFlags f) : Q
QTabWidget *tab = new QTabWidget;
tab->addTab(dbWidget, tr("Database"));
tab->addTab(extWidget, tr("Programs"));
- tab->addTab(dirWidget, tr("Copy dirs"));
+ tab->addTab(mCopyDirW, tr("Copy dirs"));
mainLayout->addWidget(tab);
mainLayout->addLayout(bLayout);
readSettings();
@@ -117,11 +91,7 @@ void ConfigurationWidget::accept(){
s.setValue("ext/ffprobe", mFfProbe->text());
s.setValue("ext/ffmpeg", mFfMpeg->text());
s.setValue("ext/mkvinfo", mMkvInfo->text());
- QStringList copyDirs;
- for(int i = 0; i < mCopyDirM->rowCount(); ++i){
- auto item = mCopyDirM->item(i);
- copyDirs << item->text();
- }
+ QStringList copyDirs = mCopyDirW->directories();
s.setValue("copydirs", copyDirs);
QDialog::accept();
}
@@ -141,36 +111,6 @@ void ConfigurationWidget::browseMkvInfo(){
mMkvInfo->setText(QDir::toNativeSeparators(mkvinfo));
}
-void ConfigurationWidget::browseCopyDir(){
- QString copyDir = QFileDialog::getExistingDirectory(this, tr("Select Directory"), QDir::homePath());
- mDir->setText(QDir::toNativeSeparators(copyDir));
-}
-
-void ConfigurationWidget::addCopyDir(){
- QString dir = mDir->text();
- QFileInfo dinfo(dir);
- if(dinfo.exists() && dinfo.isDir()){
- auto search = mCopyDirM->findItems(dir);
- if(search.isEmpty()){
- QStandardItem *newDir = new QStandardItem(QIcon(":/folder.png"), dir);
- mCopyDirM->insertRow(mCopyDirM->rowCount(), newDir);
- }
- }
-}
-
-void ConfigurationWidget::removeCopyDir(){
- QString dir = mDir->text();
- auto search = mCopyDirM->findItems(dir);
- if(!search.isEmpty()){
- mCopyDirM->removeRow(search.first()->row());
- }
-}
-
-void ConfigurationWidget::selectCopyDir(const QModelIndex &cur, const QModelIndex &prev){
- Q_UNUSED(prev);
- mDir->setText(cur.data().toString());
-}
-
void ConfigurationWidget::readSettings(){
QSettings s;
mDbHost->setText(s.value("dbhost").toString());
@@ -181,8 +121,5 @@ void ConfigurationWidget::readSettings(){
mFfMpeg->setText(s.value("ext/ffmpeg").toString());
mMkvInfo->setText(s.value("ext/mkvinfo").toString());
QStringList copyDirs = s.value("copydirs").toStringList();
- foreach(auto d, copyDirs){
- mDir->setText(d);
- addCopyDir();
- }
+ mCopyDirW->setDirectories(copyDirs);
}