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