diff options
author | Arno <arno@disconnect.de> | 2018-03-30 19:20:23 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-03-30 19:20:23 +0200 |
commit | d42c4314f7b30af0b1186fe947f2523c3d8f62b6 (patch) | |
tree | 5dfecd5f616566d20b42129ef9dd4b8ac38c1a77 /fswidget.cpp | |
parent | 8e685d4ab524da43bae639274e12221fc28fc847 (diff) | |
download | SheMov-d42c4314f7b30af0b1186fe947f2523c3d8f62b6.tar.gz SheMov-d42c4314f7b30af0b1186fe947f2523c3d8f62b6.tar.bz2 SheMov-d42c4314f7b30af0b1186fe947f2523c3d8f62b6.zip |
Implement add and remove dir in FSWidget
Still doesn't read anything from the filesystem, but now you can add and
remove directories. Also, the settings are saved.
Diffstat (limited to 'fswidget.cpp')
-rw-r--r-- | fswidget.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/fswidget.cpp b/fswidget.cpp index 21e0435..3fa1cd1 100644 --- a/fswidget.cpp +++ b/fswidget.cpp @@ -4,6 +4,8 @@ #include <QHBoxLayout> #include <QVBoxLayout> #include <QTreeView> +#include <QFileDialog> +#include <QSettings> #include "fswidget.h" @@ -26,8 +28,12 @@ void FSWidget::setupWidget(){ QLabel *dirL = new QLabel(tr("Dir")); mDirCB = new QComboBox; + mDirCB->setInsertPolicy(QComboBox::InsertAlphabetically); + mDirCB->setSizeAdjustPolicy(QComboBox::AdjustToContents); QAction *addDirA = new QAction(QIcon(":/gaping_ass.png"), tr("Add dir..."), this); + connect(addDirA, &QAction::triggered, this, &FSWidget::addDir); QAction *removeDirA = new QAction(QIcon(":/hourglass_figure.png"), tr("Remove dir."), this); + connect(removeDirA, &QAction::triggered, this, &FSWidget::removeDir); QToolBar *dirTB = new QToolBar; dirTB->addAction(addDirA); dirTB->addAction(removeDirA); @@ -60,4 +66,46 @@ void FSWidget::setupWidget(){ mainLayout->addLayout(topWL); mainLayout->addWidget(mFileView); setLayout(mainLayout); + + readSettings(); +} + +FSWidget::~FSWidget(){ + writeSettings(); +} + +void FSWidget::readSettings(){ + QSettings s; + QStringList dirs = s.value("fs/dirs").toStringList(); + mDirCB->addItems(dirs); + QString cDir = s.value("fs/curdir").toString(); + mDirCB->setCurrentText(cDir); +} + +void FSWidget::writeSettings(){ + QString curDir = mDirCB->currentText(); + QStringList dirs; + for(int i = 0 ; i < mDirCB->count(); ++i){ + dirs << mDirCB->itemText(i); + } + QSettings s; + s.setValue("fs/dirs", dirs); + s.setValue("fs/curdir", curDir); +} + +void FSWidget::addDir(){ + QString newDir = QFileDialog::getExistingDirectory(this, tr("Select directory"), QDir::homePath()); + if(!newDir.isEmpty()){ + int fIdx = mDirCB->findText(newDir); + if(fIdx == -1){ + mDirCB->addItem(newDir); + } + } +} + +void FSWidget::removeDir(){ + int curIdx = mDirCB->currentIndex(); + if(curIdx != -1){ + mDirCB->removeItem(curIdx); + } } |