diff options
author | Arno <arno@disconnect.de> | 2018-01-04 08:34:59 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-01-04 08:34:59 +0100 |
commit | 1c6d0cbc4e561275197fc78b3fa9f29406f4ced8 (patch) | |
tree | 1c13be604463eaf4c0d9a5f0e65fa6f943cedb63 | |
parent | 3c648fed56a6c7a9f40353d95f4eff5baaecaf76 (diff) | |
download | ShemovCleaner-1c6d0cbc4e561275197fc78b3fa9f29406f4ced8.tar.gz ShemovCleaner-1c6d0cbc4e561275197fc78b3fa9f29406f4ced8.tar.bz2 ShemovCleaner-1c6d0cbc4e561275197fc78b3fa9f29406f4ced8.zip |
Implement favorite dirs
-rw-r--r-- | configurationwidget.cpp | 8 | ||||
-rw-r--r-- | configurationwidget.h | 1 | ||||
-rw-r--r-- | filewidget.cpp | 21 | ||||
-rw-r--r-- | filewidget.h | 4 |
4 files changed, 33 insertions, 1 deletions
diff --git a/configurationwidget.cpp b/configurationwidget.cpp index 1f12377..5aea6d7 100644 --- a/configurationwidget.cpp +++ b/configurationwidget.cpp @@ -58,6 +58,9 @@ ConfigurationWidget::ConfigurationWidget(QWidget *parent, Qt::WindowFlags f) : Q //copy directories mCopyDirW = new DirSelectionWidget; + //favorite directories + mFavDirW = new DirSelectionWidget; + //buttons mAccept = new QPushButton(tr("Save")); connect(mAccept, SIGNAL(clicked()), this, SLOT(accept())); @@ -75,6 +78,7 @@ ConfigurationWidget::ConfigurationWidget(QWidget *parent, Qt::WindowFlags f) : Q tab->addTab(dbWidget, tr("Database")); tab->addTab(extWidget, tr("Programs")); tab->addTab(mCopyDirW, tr("Copy dirs")); + tab->addTab(mFavDirW, tr("Fav. dirs")); mainLayout->addWidget(tab); mainLayout->addLayout(bLayout); readSettings(); @@ -93,6 +97,8 @@ void ConfigurationWidget::accept(){ s.setValue("ext/mkvinfo", mMkvInfo->text()); QStringList copyDirs = mCopyDirW->directories(); s.setValue("copydirs", copyDirs); + QStringList favDirs = mFavDirW->directories(); + s.setValue("favdirs", favDirs); QDialog::accept(); } @@ -122,4 +128,6 @@ void ConfigurationWidget::readSettings(){ mMkvInfo->setText(s.value("ext/mkvinfo").toString()); QStringList copyDirs = s.value("copydirs").toStringList(); mCopyDirW->setDirectories(copyDirs); + QStringList favDirs = s.value("favdirs").toStringList(); + mFavDirW->setDirectories(favDirs); } diff --git a/configurationwidget.h b/configurationwidget.h index 9dacde9..d268f84 100644 --- a/configurationwidget.h +++ b/configurationwidget.h @@ -32,6 +32,7 @@ class ConfigurationWidget : public QDialog { QPushButton *mAccept; QPushButton *mCancel; DirSelectionWidget *mCopyDirW; + DirSelectionWidget *mFavDirW; }; #endif // CONFIGURATIONWIDGET_H diff --git a/filewidget.cpp b/filewidget.cpp index a60f48b..e3759ff 100644 --- a/filewidget.cpp +++ b/filewidget.cpp @@ -31,6 +31,7 @@ #include <QApplication> #include <QContextMenuEvent> #include <QDirIterator> +#include <QComboBox> #include "filewidget.h" #include "filesorter.h" @@ -73,6 +74,9 @@ void FileWidget::setupGui(){ connect(mDir, &QLineEdit::returnPressed, this, &FileWidget::gatherData); QPushButton *selDirBtn = new QPushButton(tr("&Browse...")); connect(selDirBtn, &QPushButton::clicked, this, &FileWidget::selectDir); + mFavDirs = new QComboBox; + populateFavDirs(); + connect(mFavDirs, QOverload<const QString &>::of(&QComboBox::activated), [=](const QString &text) { cdAbsolute(text); }); mFilter = new QLineEdit; connect(mFilter, &QLineEdit::returnPressed, this, &FileWidget::filter); @@ -83,8 +87,9 @@ void FileWidget::setupGui(){ topL->addWidget(new QLabel(tr("Directory")), 0, 0); topL->addWidget(mDir, 0, 1); topL->addWidget(selDirBtn, 0, 2); + topL->addWidget(mFavDirs, 0, 3); topL->addWidget(new QLabel(tr("Filter")), 1, 0); - topL->addWidget(mFilter, 1, 1); + topL->addWidget(mFilter, 1, 1, 2, 1); topL->addWidget(searchBtn, 1, 2); mFileView = new QTreeView; @@ -448,6 +453,13 @@ void FileWidget::cutOrCopy(){ clip->setMimeData(mMimeData); } +void FileWidget::populateFavDirs(){ + QSettings s; + QStringList favDirs = s.value("favdirs").toStringList(); + mFavDirs->clear(); + mFavDirs->addItems(favDirs); +} + QList<QStandardItem*> FileWidget::constructRow(CachedFileData *fd) const{ QList<QStandardItem*> fData; QBrush redBrush(Qt::red); @@ -746,6 +758,13 @@ void FileWidget::cd(const QString &to){ } } +void FileWidget::cdAbsolute(const QString &to){ + QString ld = mDir->text(); + mLastDir = ld; + mDir->setText(QDir::toNativeSeparators(to)); + gatherData(); +} + void FileWidget::cdUp(){ cd(".."); } diff --git a/filewidget.h b/filewidget.h index 5e2b910..964c6a7 100644 --- a/filewidget.h +++ b/filewidget.h @@ -26,6 +26,7 @@ class FileCopier; class ProgressDialog; class CachedFileData; class QStandardItem; +class QComboBox; class FileWidget : public QWidget { Q_OBJECT @@ -52,6 +53,7 @@ class FileWidget : public QWidget { public slots: void fileSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected); void cd(const QString &to); + void cdAbsolute(const QString &to); void cdUp(); void cdLast(); void deleteFiles(); @@ -92,6 +94,7 @@ class FileWidget : public QWidget { void readCache(); void writeCache(); void cutOrCopy(); + void populateFavDirs(); QList<QStandardItem*> constructRow(CachedFileData *fd) const; QAction *createSeparator(); QLineEdit *mDir; @@ -126,6 +129,7 @@ class FileWidget : public QWidget { OriginDialog *mOrignDlg; FileCopier *mFileCopier; QCache<QString, CachedFileData> mFileCache; + QComboBox *mFavDirs; int mFileAction; }; |