summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configurationwidget.cpp2
-rw-r--r--filewidget.cpp1
-rw-r--r--itemselectionwidget.cpp18
-rw-r--r--itemselectionwidget.h4
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;
};