summaryrefslogtreecommitdiffstats
path: root/itemselectionwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'itemselectionwidget.cpp')
-rw-r--r--itemselectionwidget.cpp18
1 files changed, 12 insertions, 6 deletions
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);
}
}