Add back extra column content

This commit is contained in:
Veronica Berglyd Olsen
2025-03-23 16:41:40 +01:00
parent 9d63a018e8
commit 95d8e3ac98
7 changed files with 113 additions and 301 deletions
+17 -9
View File
@@ -30,7 +30,7 @@ from PyQt6.QtCore import QAbstractTableModel, QModelIndex, Qt
from PyQt6.QtGui import QIcon, QPixmap
from novelwriter import SHARED
from novelwriter.constants import nwKeyWords, nwStyles
from novelwriter.constants import nwKeyWords, nwLabels, nwStyles, trConst
from novelwriter.core.indexdata import IndexHeading, IndexNode
from novelwriter.enum import nwNovelExtra
from novelwriter.error import logException
@@ -52,7 +52,7 @@ T_NodeData = str | tuple[str, str] | QIcon | QPixmap | Qt.AlignmentFlag | None
class NovelModel(QAbstractTableModel):
__slots__ = ("_rows", "_header", "_more", "_columns", "_extra")
__slots__ = ("_rows", "_header", "_more", "_columns", "_extraKey", "_extraLabel")
def __init__(self) -> None:
super().__init__()
@@ -60,7 +60,8 @@ class NovelModel(QAbstractTableModel):
self._header: list[QSize] = []
self._more = SHARED.theme.getIcon("more_arrow")
self._columns = 3
self._extra = ""
self._extraKey = ""
self._extraLabel = ""
return
def __del__(self) -> None: # pragma: no cover
@@ -85,16 +86,20 @@ class NovelModel(QAbstractTableModel):
match extra:
case nwNovelExtra.HIDDEN:
self._columns = 3
self._extra = ""
self._extraKey = ""
self._extraLabel = ""
case nwNovelExtra.POV:
self._columns = 4
self._extra = nwKeyWords.POV_KEY
self._extraKey = nwKeyWords.POV_KEY
self._extraLabel = trConst(nwLabels.KEY_NAME[nwKeyWords.POV_KEY])
case nwNovelExtra.FOCUS:
self._columns = 4
self._extra = nwKeyWords.FOCUS_KEY
self._extraKey = nwKeyWords.FOCUS_KEY
self._extraLabel = trConst(nwLabels.KEY_NAME[nwKeyWords.FOCUS_KEY])
case nwNovelExtra.PLOT:
self._columns = 4
self._extra = nwKeyWords.PLOT_KEY
self._extraKey = nwKeyWords.PLOT_KEY
self._extraLabel = trConst(nwLabels.KEY_NAME[nwKeyWords.PLOT_KEY])
return
##
@@ -209,6 +214,7 @@ class NovelModel(QAbstractTableModel):
"""Generate a cache entry."""
iLevel = nwStyles.H_LEVEL.get(heading.level, 0)
data = {}
data[C_FACTOR*0 | R_TIP] = heading.title
data[C_FACTOR*0 | R_TEXT] = heading.title
data[C_FACTOR*0 | R_ICON] = SHARED.theme.getHeaderDecoration(iLevel)
data[C_FACTOR*1 | R_TEXT] = f"{heading.mainCount:n}"
@@ -216,8 +222,10 @@ class NovelModel(QAbstractTableModel):
if self._columns == 3:
data[C_FACTOR*2 | R_ICON] = self._more
else:
data[C_FACTOR*2 | R_TIP] = "Hello World"
data[C_FACTOR*2 | R_TEXT] = "Hello World"
if self._extraKey and (refs := heading.getReferencesByKeyword(self._extraKey)):
text = ", ".join(refs)
data[C_FACTOR*2 | R_TEXT] = text
data[C_FACTOR*2 | R_TIP] = f"<b>{self._extraLabel}:</b> {text}"
data[C_FACTOR*3 | R_ICON] = self._more
data[R_HANDLE] = handle
data[R_KEY] = key