diff options
author | Arno <arno@disconnect.de> | 2018-01-04 09:04:48 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-01-04 09:04:48 +0100 |
commit | f459b30a4ab8ac4bc5d6646795d2e391f70851d3 (patch) | |
tree | 31db881ac08a9a54f2af4c72541ecc3486ddcd57 /dirselectionwidget.cpp | |
parent | 1c6d0cbc4e561275197fc78b3fa9f29406f4ced8 (diff) | |
download | ShemovCleaner-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.cpp | 80 |
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()); - } -} |