diff options
-rw-r--r-- | configurationwidget.cpp | 2 | ||||
-rw-r--r-- | filewidget.cpp | 1 | ||||
-rw-r--r-- | itemselectionwidget.cpp | 18 | ||||
-rw-r--r-- | itemselectionwidget.h | 4 |
4 files changed, 17 insertions, 8 deletions
diff --git a/configurationwidget.cpp b/configurationwidget.cpp index 8aa0a1e..33e1271 100644 --- a/configurationwidget.cpp +++ b/configurationwidget.cpp @@ -100,6 +100,7 @@ void ConfigurationWidget::accept(){ s.setValue("ext/ffmpeg", mFfMpeg->text()); s.setValue("ext/mkvinfo", mMkvInfo->text()); QStringList copyDirs = mCopyDirW->items(); + std::sort(copyDirs.begin(), copyDirs.end()); s.setValue("copydirs", copyDirs); QStringList favDirs = mFavDirW->items(); s.setValue("favdirs", favDirs); @@ -123,6 +124,7 @@ void ConfigurationWidget::readSettings(){ mFfMpeg->setText(s.value("ext/ffmpeg").toString()); mMkvInfo->setText(s.value("ext/mkvinfo").toString()); QStringList copyDirs = s.value("copydirs").toStringList(); + std::sort(copyDirs.begin(), copyDirs.end()); mCopyDirW->setItems(copyDirs); QStringList favDirs = s.value("favdirs").toStringList(); mFavDirW->setItems(favDirs); diff --git a/filewidget.cpp b/filewidget.cpp index f1d8873..4a5556c 100644 --- a/filewidget.cpp +++ b/filewidget.cpp @@ -954,6 +954,7 @@ void FileWidget::contextMenuEvent(QContextMenuEvent *e){ mCopyToMenu->setTitle(tr("Copy Files to...")); mCopyToMenu->setIcon(QIcon(":/hourglass_figure.png")); QStringList copyToDirs = s.value("copydirs").toStringList(); + std::sort(copyToDirs.begin(), copyToDirs.end()); for(QString &d : copyToDirs){ QFileInfo di(d); if(di.exists()){ diff --git a/itemselectionwidget.cpp b/itemselectionwidget.cpp index 8c55d34..1349de3 100644 --- a/itemselectionwidget.cpp +++ b/itemselectionwidget.cpp @@ -4,7 +4,8 @@ #include <QPushButton> #include <QLabel> #include <QStandardItemModel> -#include <QListView> +#include <QSortFilterProxyModel> +#include <QTreeView> #include <QFileDialog> #include <QDir> @@ -15,6 +16,14 @@ ItemSelectionWidget::ItemSelectionWidget(int mode, QString labelText, QWidget *p newItemL->addWidget(new QLabel(labelText)); mItem = new QLineEdit; newItemL->addWidget(mItem); + mModel = new QStandardItemModel; + QSortFilterProxyModel *proxy = new QSortFilterProxyModel(this); + proxy->setSourceModel(mModel); + mView = new QTreeView; + mView->setModel(proxy); + mView->setSortingEnabled(true); + mView->sortByColumn(0, Qt::AscendingOrder); + mView->setHeaderHidden(true); if(mode == Directories){ QPushButton *browseBtn = new QPushButton(tr("Browse...")); connect(browseBtn, &QPushButton::clicked, this, &ItemSelectionWidget::browseDir); @@ -31,9 +40,6 @@ ItemSelectionWidget::ItemSelectionWidget(int mode, QString labelText, QWidget *p 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) { mItem->setText(cur.data().toString()); }); QVBoxLayout *newDirTabL = new QVBoxLayout; newDirTabL->addLayout(newItemL); @@ -55,7 +61,7 @@ void ItemSelectionWidget::setItems(const QStringList &items){ mModel->clear(); for(const QString &d : items){ QStandardItem *newDir = new QStandardItem(mIcon, d); - mModel->insertRow(mModel->rowCount(), newDir); + mModel->appendRow(newDir); } } @@ -69,7 +75,7 @@ void ItemSelectionWidget::addItem(){ QList<QStandardItem*> search = mModel->findItems(item); if(search.isEmpty()){ QStandardItem *newDir = new QStandardItem(mIcon, item); - mModel->insertRow(mModel->rowCount(), newDir); + mModel->appendRow(newDir); } } diff --git a/itemselectionwidget.h b/itemselectionwidget.h index f78b9d1..9829451 100644 --- a/itemselectionwidget.h +++ b/itemselectionwidget.h @@ -5,7 +5,7 @@ #include <QIcon> class QStandardItemModel; -class QListView; +class QTreeView; class QLineEdit; class ItemSelectionWidget : public QWidget @@ -24,7 +24,7 @@ class ItemSelectionWidget : public QWidget private: QStandardItemModel *mModel; - QListView *mView; + QTreeView *mView; QLineEdit *mItem; QIcon mIcon; }; |