Make checkboxes less verbose.
This commit is contained in:
1 parent
f39ec4d51a
commit
eb63cfe8bf
3 files changed
+8
-11
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# Maintainer: Storm Dragon <storm_dragon@stormux.org>
|
||||
pkgname=navipy-git
|
||||
pkgver=r14.g059e4e1
|
||||
pkgver=r15.gf39ec4d
|
||||
pkgrel=1
|
||||
pkgdesc='Accessible Subsonic desktop client tested with Navidrome'
|
||||
arch=('any')
|
||||
|
||||
@@ -75,10 +75,7 @@ class LibraryTableModel(QAbstractTableModel):
|
||||
return Qt.Checked if checked else Qt.Unchecked
|
||||
label = self.rows[index.row()].data.get('label', 'item')
|
||||
if role == Qt.AccessibleTextRole:
|
||||
return f'Select {label}, {"checked" if checked else "unchecked"}'
|
||||
if role == Qt.AccessibleDescriptionRole:
|
||||
return ('Checked. Press Space to uncheck.' if checked
|
||||
else 'Unchecked. Press Space to check.')
|
||||
return f'{label}, {"checked" if checked else "unchecked"}'
|
||||
if role == Qt.ToolTipRole:
|
||||
return f'{"Checked" if checked else "Unchecked"}: {label}'
|
||||
return None
|
||||
@@ -106,8 +103,7 @@ class LibraryTableModel(QAbstractTableModel):
|
||||
def refreshChecks(self):
|
||||
if self.rows and self.headers:
|
||||
self.dataChanged.emit(self.index(0, 0), self.index(len(self.rows) - 1, 0),
|
||||
[Qt.CheckStateRole, Qt.AccessibleTextRole,
|
||||
Qt.AccessibleDescriptionRole])
|
||||
[Qt.CheckStateRole, Qt.AccessibleTextRole])
|
||||
|
||||
def headerData(self, section, orientation, role=Qt.DisplayRole):
|
||||
if role == Qt.DisplayRole:
|
||||
|
||||
@@ -226,11 +226,12 @@ def test_checkbox_cell_exposes_checked_state_and_accessible_text(window):
|
||||
w.libraryBrowser.checkedStateAnnouncement.connect(announcements.append)
|
||||
|
||||
assert page.model.headerData(0, Qt.Horizontal) == 'Selected'
|
||||
assert page.model.data(checkboxIndex, Qt.AccessibleTextRole) == 'Select Artist, unchecked'
|
||||
assert page.model.data(checkboxIndex, Qt.AccessibleTextRole) == 'Artist, unchecked'
|
||||
assert page.model.data(checkboxIndex, Qt.AccessibleDescriptionRole) is None
|
||||
assert page.model.flags(checkboxIndex) & Qt.ItemIsUserCheckable
|
||||
interface = QAccessible.queryAccessibleInterface(page.table)
|
||||
checkbox = next(interface.child(i) for i in range(interface.childCount())
|
||||
if interface.child(i).text(QAccessible.Name) == 'Select Artist, unchecked')
|
||||
if interface.child(i).text(QAccessible.Name) == 'Artist, unchecked')
|
||||
assert checkbox.state().checkable
|
||||
assert not checkbox.state().checked
|
||||
|
||||
@@ -238,11 +239,11 @@ def test_checkbox_cell_exposes_checked_state_and_accessible_text(window):
|
||||
QApplication.processEvents()
|
||||
|
||||
assert page.model.data(checkboxIndex, Qt.CheckStateRole) == Qt.Checked
|
||||
assert page.model.data(checkboxIndex, Qt.AccessibleTextRole) == 'Select Artist, checked'
|
||||
assert page.model.data(checkboxIndex, Qt.AccessibleTextRole) == 'Artist, checked'
|
||||
assert announcements == ['Artist checked; 1 item checked.']
|
||||
interface = QAccessible.queryAccessibleInterface(page.table)
|
||||
checkbox = next(interface.child(i) for i in range(interface.childCount())
|
||||
if interface.child(i).text(QAccessible.Name) == 'Select Artist, checked')
|
||||
if interface.child(i).text(QAccessible.Name) == 'Artist, checked')
|
||||
assert checkbox.state().checkable
|
||||
assert checkbox.state().checked
|
||||
|
||||
|
||||
Reference in new issue
Block a user