Improve accessibility labels for novel and project trees
This commit is contained in:
@@ -45,16 +45,18 @@ logger = logging.getLogger(__name__)
|
|||||||
INV_ROOT = "invisibleRoot"
|
INV_ROOT = "invisibleRoot"
|
||||||
C_FACTOR = 0x0100
|
C_FACTOR = 0x0100
|
||||||
|
|
||||||
C_LABEL_TEXT = 0x0000 | Qt.ItemDataRole.DisplayRole
|
C_LABEL_TEXT = 0x0000 | Qt.ItemDataRole.DisplayRole
|
||||||
C_LABEL_ICON = 0x0000 | Qt.ItemDataRole.DecorationRole
|
C_LABEL_ICON = 0x0000 | Qt.ItemDataRole.DecorationRole
|
||||||
C_LABEL_FONT = 0x0000 | Qt.ItemDataRole.FontRole
|
C_LABEL_FONT = 0x0000 | Qt.ItemDataRole.FontRole
|
||||||
C_COUNT_TEXT = 0x0100 | Qt.ItemDataRole.DisplayRole
|
C_COUNT_TEXT = 0x0100 | Qt.ItemDataRole.DisplayRole
|
||||||
C_COUNT_ICON = 0x0100 | Qt.ItemDataRole.DecorationRole
|
C_COUNT_ICON = 0x0100 | Qt.ItemDataRole.DecorationRole
|
||||||
C_COUNT_ALIGN = 0x0100 | Qt.ItemDataRole.TextAlignmentRole
|
C_COUNT_ALIGN = 0x0100 | Qt.ItemDataRole.TextAlignmentRole
|
||||||
C_ACTIVE_ICON = 0x0200 | Qt.ItemDataRole.DecorationRole
|
C_ACTIVE_ICON = 0x0200 | Qt.ItemDataRole.DecorationRole
|
||||||
C_ACTIVE_TIP = 0x0200 | Qt.ItemDataRole.ToolTipRole
|
C_ACTIVE_TIP = 0x0200 | Qt.ItemDataRole.ToolTipRole
|
||||||
C_STATUS_ICON = 0x0300 | Qt.ItemDataRole.DecorationRole
|
C_ACTIVE_ACCESS = 0x0200 | Qt.ItemDataRole.AccessibleTextRole
|
||||||
C_STATUS_TIP = 0x0300 | Qt.ItemDataRole.ToolTipRole
|
C_STATUS_ICON = 0x0300 | Qt.ItemDataRole.DecorationRole
|
||||||
|
C_STATUS_TIP = 0x0300 | Qt.ItemDataRole.ToolTipRole
|
||||||
|
C_STATUS_ACCESS = 0x0300 | Qt.ItemDataRole.AccessibleTextRole
|
||||||
|
|
||||||
NODE_FLAGS = Qt.ItemFlag.ItemIsEnabled
|
NODE_FLAGS = Qt.ItemFlag.ItemIsEnabled
|
||||||
NODE_FLAGS |= Qt.ItemFlag.ItemIsSelectable
|
NODE_FLAGS |= Qt.ItemFlag.ItemIsSelectable
|
||||||
@@ -150,13 +152,15 @@ class ProjectNode:
|
|||||||
|
|
||||||
# Active
|
# Active
|
||||||
aText, aIcon = self._item.getActiveStatus()
|
aText, aIcon = self._item.getActiveStatus()
|
||||||
self._cache[C_ACTIVE_TIP] = aText
|
|
||||||
self._cache[C_ACTIVE_ICON] = aIcon
|
self._cache[C_ACTIVE_ICON] = aIcon
|
||||||
|
self._cache[C_ACTIVE_TIP] = aText
|
||||||
|
self._cache[C_ACTIVE_ACCESS] = aText
|
||||||
|
|
||||||
# Status
|
# Status
|
||||||
sText, sIcon = self._item.getImportStatus()
|
sText, sIcon = self._item.getImportStatus()
|
||||||
self._cache[C_STATUS_TIP] = sText
|
|
||||||
self._cache[C_STATUS_ICON] = sIcon
|
self._cache[C_STATUS_ICON] = sIcon
|
||||||
|
self._cache[C_STATUS_TIP] = sText
|
||||||
|
self._cache[C_STATUS_ACCESS] = sText
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ R_TEXT = Qt.ItemDataRole.DisplayRole
|
|||||||
R_ICON = Qt.ItemDataRole.DecorationRole
|
R_ICON = Qt.ItemDataRole.DecorationRole
|
||||||
R_ALIGN = Qt.ItemDataRole.TextAlignmentRole
|
R_ALIGN = Qt.ItemDataRole.TextAlignmentRole
|
||||||
R_TIP = Qt.ItemDataRole.ToolTipRole
|
R_TIP = Qt.ItemDataRole.ToolTipRole
|
||||||
|
R_ACCESS = Qt.ItemDataRole.AccessibleTextRole
|
||||||
R_HANDLE = 0xff01
|
R_HANDLE = 0xff01
|
||||||
R_KEY = 0xff02
|
R_KEY = 0xff02
|
||||||
|
|
||||||
@@ -217,6 +218,7 @@ class NovelModel(QAbstractTableModel):
|
|||||||
text = ", ".join(refs)
|
text = ", ".join(refs)
|
||||||
data[C_FACTOR*2 | R_TEXT] = text
|
data[C_FACTOR*2 | R_TEXT] = text
|
||||||
data[C_FACTOR*2 | R_TIP] = f"<b>{self._extraLabel}:</b> {text}"
|
data[C_FACTOR*2 | R_TIP] = f"<b>{self._extraLabel}:</b> {text}"
|
||||||
|
data[C_FACTOR*2 | R_ACCESS] = f"{self._extraLabel}: {text}"
|
||||||
data[C_FACTOR*3 | R_ICON] = self._more
|
data[C_FACTOR*3 | R_ICON] = self._more
|
||||||
data[R_HANDLE] = handle
|
data[R_HANDLE] = handle
|
||||||
data[R_KEY] = key
|
data[R_KEY] = key
|
||||||
|
|||||||
@@ -298,6 +298,7 @@ class GuiNovelToolBar(QWidget):
|
|||||||
self.novelValue.setHandle(rootHandle)
|
self.novelValue.setHandle(rootHandle)
|
||||||
SHARED.project.data.setLastHandle(rootHandle, "novel")
|
SHARED.project.data.setLastHandle(rootHandle, "novel")
|
||||||
self.novelView.setCurrentNovel(rootHandle)
|
self.novelView.setCurrentNovel(rootHandle)
|
||||||
|
self.novelView.novelTree.setAccessibleName(self.novelValue.currentText())
|
||||||
return
|
return
|
||||||
|
|
||||||
def setLastColType(self, colType: nwNovelExtra, doRefresh: bool = True) -> None:
|
def setLastColType(self, colType: nwNovelExtra, doRefresh: bool = True) -> None:
|
||||||
|
|||||||
@@ -254,6 +254,7 @@ class GuiProjectToolBar(QWidget):
|
|||||||
self.viewLabel.setFont(SHARED.theme.guiFontB)
|
self.viewLabel.setFont(SHARED.theme.guiFontB)
|
||||||
self.viewLabel.setContentsMargins(0, 0, 0, 0)
|
self.viewLabel.setContentsMargins(0, 0, 0, 0)
|
||||||
self.viewLabel.setSizePolicy(QtSizeExpanding, QtSizeExpanding)
|
self.viewLabel.setSizePolicy(QtSizeExpanding, QtSizeExpanding)
|
||||||
|
self.projTree.setAccessibleName(self.viewLabel.text())
|
||||||
|
|
||||||
# Quick Links
|
# Quick Links
|
||||||
self.mQuick = QMenu(self)
|
self.mQuick = QMenu(self)
|
||||||
|
|||||||
@@ -125,6 +125,7 @@ class GuiProjectSearch(QWidget):
|
|||||||
self.searchResult.setAllColumnsShowFocus(True)
|
self.searchResult.setAllColumnsShowFocus(True)
|
||||||
self.searchResult.itemDoubleClicked.connect(self._searchResultDoubleClicked)
|
self.searchResult.itemDoubleClicked.connect(self._searchResultDoubleClicked)
|
||||||
self.searchResult.itemSelectionChanged.connect(self._searchResultSelected)
|
self.searchResult.itemSelectionChanged.connect(self._searchResultSelected)
|
||||||
|
self.searchResult.setAccessibleName(self.viewLabel.text())
|
||||||
|
|
||||||
if header := self.searchResult.header():
|
if header := self.searchResult.header():
|
||||||
header.setStretchLastSection(False)
|
header.setStretchLastSection(False)
|
||||||
|
|||||||
Reference in New Issue
Block a user