1 /*
2 SPDX-FileCopyrightText: 2008 Joris Guisson <joris.guisson@gmail.com>
3 SPDX-FileCopyrightText: 2008 Ivan Vasic <ivasic@gmail.com>
4 SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7 #include "filterlistview.h"
8 #include "filterlist.h"
9
10 namespace kt
11 {
FilterListView(FilterList * filters,QWidget * parent)12 FilterListView::FilterListView(FilterList *filters, QWidget *parent)
13 : QListView(parent)
14 , filters(filters)
15 {
16 setContextMenuPolicy(Qt::CustomContextMenu);
17 setModel(filters);
18 setAlternatingRowColors(true);
19 connect(this, &FilterListView::doubleClicked, this, &FilterListView::itemActivated);
20 connect(this->selectionModel(), &QItemSelectionModel::selectionChanged, this, &FilterListView::selectionChanged);
21 }
22
~FilterListView()23 FilterListView::~FilterListView()
24 {
25 }
26
itemActivated(const QModelIndex & idx)27 void FilterListView::itemActivated(const QModelIndex &idx)
28 {
29 filterActivated(filters->filterForIndex(idx));
30 }
31
selectionChanged(const QItemSelection & sel,const QItemSelection & desel)32 void FilterListView::selectionChanged(const QItemSelection &sel, const QItemSelection &desel)
33 {
34 Q_UNUSED(desel);
35 Q_UNUSED(sel);
36 enableRemove(selectionModel()->selectedRows().count() > 0);
37 enableEdit(selectionModel()->selectedRows().count() == 1);
38 }
39
selectedFilters()40 QModelIndexList FilterListView::selectedFilters()
41 {
42 return selectionModel()->selectedRows();
43 }
44 }
45