Connect the new viewer panel and add icon for it

This commit is contained in:
Veronica Berglyd Olsen
2023-11-14 22:41:39 +01:00
parent 1d89e4935f
commit 4d7ef63e83
12 changed files with 184 additions and 275 deletions
+61 -11
View File
@@ -3,7 +3,7 @@ novelWriter GUI Document Viewer Panel
=======================================
File History:
Created: 2023-11-09 [2.2a1] GuiDocViewerPanel
Created: 2023-11-14 [2.2rc1] GuiDocViewerPanel
This file is a part of novelWriter
Copyright 20182023, Veronica Berglyd Olsen
@@ -25,40 +25,90 @@ from __future__ import annotations
import logging
from PyQt5.QtWidgets import QVBoxLayout, QWidget
from PyQt5.QtWidgets import QTabWidget, QVBoxLayout, QWidget
from novelwriter.gui.docviewer import GuiDocViewer
from novelwriter import CONFIG
from novelwriter.constants import nwLabels, nwLists, trConst
logger = logging.getLogger(__name__)
class GuiDocViewerPanel(QWidget):
def __init__(self, docViewer: GuiDocViewer) -> None:
super().__init__(parent=docViewer)
def __init__(self, parent: QWidget) -> None:
super().__init__(parent=parent)
logger.debug("Create: GuiDocViewerPanel")
self.panelHeader = GuiDocViewerPanelHeader(self)
self.tabBackRefs = _ViewPanelBackRefs(self)
self.mainTabs = QTabWidget(self)
self.mainTabs.addTab(self.tabBackRefs, self.tr("Back References"))
self.kwTabs = {}
for itemClass in nwLists.USER_CLASSES:
self.kwTabs[itemClass] = _ViewPanelKeyWords(self)
self.mainTabs.addTab(self.kwTabs[itemClass], trConst(nwLabels.CLASS_NAME[itemClass]))
# Assemble
self.outerBox = QVBoxLayout()
self.outerBox.addWidget(self.panelHeader)
self.outerBox.addWidget(self.mainTabs)
self.outerBox.setContentsMargins(0, 0, 0, 0)
self.setLayout(self.outerBox)
self.updateTheme()
logger.debug("Ready: GuiDocViewerPanel")
return
def updateTheme(self) -> None:
"""Update theme elements."""
vPx = CONFIG.pxInt(4)
lPx = CONFIG.pxInt(2)
rPx = CONFIG.pxInt(14)
hCol = self.palette().highlight().color()
styleSheet = (
"QTabWidget QTabBar::tab {"
f"border: 0; padding: {vPx}px {rPx}px {vPx}px {lPx}px;"
"} "
"QTabWidget QTabBar::tab:selected {"
f"color: rgb({hCol.red()}, {hCol.green()}, {hCol.blue()});"
"} "
)
self.mainTabs.setStyleSheet(styleSheet)
return
# END Class GuiDocViewerPanel
class GuiDocViewerPanelHeader(QWidget):
class _ViewPanelBackRefs(QWidget):
def __init__(self, docViewerPanel: GuiDocViewerPanel) -> None:
super().__init__(parent=docViewerPanel)
def __init__(self, parent: QWidget) -> None:
super().__init__(parent=parent)
return
# END Class GuiDocViewerPanelHeader
def refreshContent(self):
""""""
# theRefs = SHARED.project.index.getBackReferenceList(tHandle)
# theList = []
# for tHandle in theRefs:
# tItem = SHARED.project.tree[tHandle]
# if tItem is not None:
# theList.append("<a href='%s#%s' %s>%s</a>" % (
# tHandle, theRefs[tHandle], self.linkStyle, tItem.itemName
# ))
return
# END Class _ViewPanelBackRefs
class _ViewPanelKeyWords(QWidget):
def __init__(self, parent: QWidget) -> None:
super().__init__(parent=parent)
return
# END Class _ViewPanelRefs