diff options
author | Arno <arno@disconnect.de> | 2018-02-01 08:45:43 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-02-01 08:45:43 +0100 |
commit | 4847284500c9b9792bd1ab8c2913d6f6c2307152 (patch) | |
tree | 6a9565d3a0ce9e8117f51655c3d73e574fd7867a /itemselectionwidget.cpp | |
parent | f2604b62b777d7cab001bb5b7d80ad25b586e554 (diff) | |
download | ShemovCleaner-4847284500c9b9792bd1ab8c2913d6f6c2307152.tar.gz ShemovCleaner-4847284500c9b9792bd1ab8c2913d6f6c2307152.tar.bz2 ShemovCleaner-4847284500c9b9792bd1ab8c2913d6f6c2307152.zip |
Sort copy dirs whenever possible
Diffstat (limited to 'itemselectionwidget.cpp')
-rw-r--r-- | itemselectionwidget.cpp | 18 |
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); } } |