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