diff options
Diffstat (limited to 'configurationwidget.cpp')
-rw-r--r-- | configurationwidget.cpp | 73 |
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); } |