mirror of
https://github.com/SELinuxProject/setools
synced 2025-02-22 23:26:58 +00:00
TERuleQueryTab: implement invert class/perms functions
This commit is contained in:
parent
7a5850e423
commit
80e47d7bf6
@ -17,11 +17,20 @@
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from PyQt5 import QtCore
|
||||
from PyQt5.QtCore import QAbstractListModel, QModelIndex, QStringListModel, Qt
|
||||
from PyQt5.QtCore import QAbstractListModel, QItemSelectionModel, QModelIndex, QStringListModel, Qt
|
||||
from setools.policyrep.exception import NoCommon
|
||||
|
||||
|
||||
def invert_list_selection(selection_model):
|
||||
"""Invert the selection of a list-based model."""
|
||||
|
||||
model = selection_model.model()
|
||||
rowcount = model.rowCount()
|
||||
for row in range(rowcount):
|
||||
index = model.createIndex(row, 0)
|
||||
selection_model.select(index, QItemSelectionModel.Toggle)
|
||||
|
||||
|
||||
class SEToolsListModel(QAbstractListModel):
|
||||
|
||||
"""
|
||||
|
@ -26,7 +26,7 @@ from setools import TERuleQuery
|
||||
|
||||
from ..widget import SEToolsWidget
|
||||
from .rulemodels import TERuleListModel
|
||||
from .models import PermListModel, SEToolsListModel
|
||||
from .models import PermListModel, SEToolsListModel, invert_list_selection
|
||||
|
||||
|
||||
class TERuleQueryTab(SEToolsWidget, QScrollArea):
|
||||
@ -105,7 +105,9 @@ class TERuleQueryTab(SEToolsWidget, QScrollArea):
|
||||
self.target.editingFinished.connect(self.set_target)
|
||||
self.target_regex.toggled.connect(self.set_target_regex)
|
||||
self.tclass.selectionModel().selectionChanged.connect(self.set_tclass)
|
||||
self.invert_class.clicked.connect(self.invert_tclass_selection)
|
||||
self.perms.selectionModel().selectionChanged.connect(self.set_perms)
|
||||
self.invert_perms.clicked.connect(self.invert_perms_selection)
|
||||
self.default_type.textEdited.connect(self.clear_default_error)
|
||||
self.default_type.editingFinished.connect(self.set_default_type)
|
||||
self.default_regex.toggled.connect(self.set_default_regex)
|
||||
@ -184,6 +186,9 @@ class TERuleQueryTab(SEToolsWidget, QScrollArea):
|
||||
self.query.tclass = selected_classes
|
||||
self.perms_model.set_classes(selected_classes)
|
||||
|
||||
def invert_tclass_selection(self):
|
||||
invert_list_selection(self.tclass.selectionModel())
|
||||
|
||||
#
|
||||
# Permissions criteria
|
||||
#
|
||||
@ -195,6 +200,9 @@ class TERuleQueryTab(SEToolsWidget, QScrollArea):
|
||||
|
||||
self.query.perms = selected_perms
|
||||
|
||||
def invert_perms_selection(self):
|
||||
invert_list_selection(self.perms.selectionModel())
|
||||
|
||||
#
|
||||
# Default criteria
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user