summaryrefslogtreecommitdiffstats
path: root/dirselectionwidget.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2018-01-04 09:04:48 +0100
committerArno <arno@disconnect.de>2018-01-04 09:04:48 +0100
commitf459b30a4ab8ac4bc5d6646795d2e391f70851d3 (patch)
tree31db881ac08a9a54f2af4c72541ecc3486ddcd57 /dirselectionwidget.cpp
parent1c6d0cbc4e561275197fc78b3fa9f29406f4ced8 (diff)
downloadShemovCleaner-f459b30a4ab8ac4bc5d6646795d2e391f70851d3.tar.gz
ShemovCleaner-f459b30a4ab8ac4bc5d6646795d2e391f70851d3.tar.bz2
ShemovCleaner-f459b30a4ab8ac4bc5d6646795d2e391f70851d3.zip
Rename dirselectionwidget > itemselectionwidget
It's much more general purpose than I thought. I'm gonna reuse the code for MIME-type filters later on.
Diffstat (limited to 'dirselectionwidget.cpp')
-rw-r--r--dirselectionwidget.cpp80
1 files changed, 0 insertions, 80 deletions
diff --git a/dirselectionwidget.cpp b/dirselectionwidget.cpp
deleted file mode 100644
index c23bd04..0000000
--- a/dirselectionwidget.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-#include <QHBoxLayout>
-#include <QVBoxLayout>
-#include <QLineEdit>
-#include <QPushButton>
-#include <QLabel>
-#include <QStandardItemModel>
-#include <QListView>
-#include <QFileDialog>
-#include <QDir>
-
-#include "dirselectionwidget.h"
-
-DirSelectionWidget::DirSelectionWidget(QWidget *parent) : QWidget(parent) {
- QHBoxLayout *newDirL = new QHBoxLayout;
- newDirL->addWidget(new QLabel(tr("Directory")));
- mDir = new QLineEdit;
- newDirL->addWidget(mDir);
- QPushButton *browseBtn = new QPushButton(tr("Browse..."));
- connect(browseBtn, &QPushButton::clicked, this, &DirSelectionWidget::browseDir);
- newDirL->addWidget(browseBtn);
- QPushButton *addBtn = new QPushButton(tr("Add"));
- connect(addBtn, &QPushButton::clicked, this, &DirSelectionWidget::addDir);
- QPushButton *removeBtn = new QPushButton(tr("Remove"));
- connect(removeBtn, &QPushButton::clicked, this, &DirSelectionWidget::removeDir);
- QHBoxLayout *addRemL = new QHBoxLayout;
- addRemL->addStretch();
- addRemL->addWidget(addBtn);
- addRemL->addWidget(removeBtn);
- mModel = new QStandardItemModel;
- mView = new QListView;
- mView->setModel(mModel);
- connect(mView->selectionModel(), &QItemSelectionModel::currentChanged, [=](const QModelIndex &cur) { mDir->setText(cur.data().toString()); });
- QVBoxLayout *newDirTabL = new QVBoxLayout;
- newDirTabL->addLayout(newDirL);
- newDirTabL->addLayout(addRemL);
- newDirTabL->addWidget(mView);
- setLayout(newDirTabL);
-}
-
-const QStringList DirSelectionWidget::directories() const {
- QStringList retval;
- for(int i = 0; i < mModel->rowCount(); ++i){
- QStandardItem *item = mModel->item(i, 0);
- retval << item->text();
- }
- return retval;
-}
-
-void DirSelectionWidget::setDirectories(const QStringList &dirs){
- mModel->clear();
- for(const QString &d : dirs){
- QStandardItem *newDir = new QStandardItem(QIcon(":/folder.png"), d);
- mModel->insertRow(mModel->rowCount(), newDir);
- }
-}
-
-void DirSelectionWidget::browseDir(){
- QString dir = QFileDialog::getExistingDirectory(this, tr("Select Directory"), QDir::homePath());
- mDir->setText(QDir::toNativeSeparators(dir));
-}
-
-void DirSelectionWidget::addDir(){
- QString dir = mDir->text();
- QFileInfo dinfo(dir);
- if(dinfo.exists() && dinfo.isDir()){
- auto search = mModel->findItems(dir);
- if(search.isEmpty()){
- QStandardItem *newDir = new QStandardItem(QIcon(":/folder.png"), dir);
- mModel->insertRow(mModel->rowCount(), newDir);
- }
- }
-}
-
-void DirSelectionWidget::removeDir(){
- QString dir = mDir->text();
- auto search = mModel->findItems(dir);
- if(!search.isEmpty()){
- mModel->removeRow(search.first()->row());
- }
-}