aboutsummaryrefslogtreecommitdiff
path: root/mapman/src/sliceview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mapman/src/sliceview.cpp')
-rw-r--r--mapman/src/sliceview.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/mapman/src/sliceview.cpp b/mapman/src/sliceview.cpp
index c0dc3a7..db24a26 100644
--- a/mapman/src/sliceview.cpp
+++ b/mapman/src/sliceview.cpp
@@ -6,27 +6,39 @@
#include <QListView>
#include <QGraphicsView>
#include <QStandardItemModel>
+#include <QSortFilterProxyModel>
#include <QSplitter>
+#include <QVBoxLayout>
#include <QDrag>
#include <QMimeData>
#include <QEvent>
#include <QMouseEvent>
+#include <QLineEdit>
#include <QApplication>
-#include <qnamespace.h>
slice_view::slice_view() : l(nullptr)
{
lv = new QListView(this);
m = new QStandardItemModel(this);
- lv->setModel(m);
+ mf = new QSortFilterProxyModel(this);
+ mf->setSourceModel(m);
+ mf->setFilterCaseSensitivity(Qt::CaseSensitivity::CaseInsensitive);
+ tefilter = new QLineEdit(this);
+ tefilter->setPlaceholderText("Filter");
+ lv->setModel(mf);
lv->setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection);
lv->setDragDropMode(QAbstractItemView::DragDropMode::NoDragDrop);
lv->viewport()->installEventFilter(this);
p = new map_painter();
p->set_dimension(1, 1);
+ auto leftcontainer = new QWidget();
+ auto leftlayout = new QVBoxLayout();
+ leftcontainer->setLayout(leftlayout);
+ leftlayout->addWidget(lv);
+ leftlayout->addWidget(tefilter);
auto layout = new QSplitter(Qt::Orientation::Horizontal, this);
layout->setContentsMargins(6, 6, 6, 6);
- layout->addWidget(lv);
+ layout->addWidget(leftcontainer);
layout->addWidget(p->view());
layout->setStretchFactor(0, 1);
layout->setStretchFactor(1, 3);
@@ -42,6 +54,7 @@ slice_view::slice_view() : l(nullptr)
[this](const QModelIndex &idx) {
dragidx = idx;
});
+ connect(tefilter, &QLineEdit::textChanged, mf, &QSortFilterProxyModel::setFilterFixedString);
this->setWindowTitle("Map listings");
this->setAttribute(Qt::WA_DeleteOnClose, false);
}