manuskript/manuskript/ui/highlighters/searchResultHighlighters/outlineSearchResultHighlighter.py
2021-04-02 14:15:17 +01:00

48 lines
2.1 KiB
Python

#!/usr/bin/env python
# --!-- coding: utf8 --!--
from manuskript.models import references as Ref
from manuskript.enums import Outline
from manuskript.ui.highlighters.searchResultHighlighters.abstractSpecificSearchResultHighlighter import abstractSearchResultHighlighter
from manuskript.functions import mainWindow
from PyQt5.QtWidgets import QTextEdit, QLineEdit, QLabel
from manuskript.ui.views.metadataView import metadataView
from manuskript.ui.collapsibleGroupBox2 import collapsibleGroupBox2
class outlineSearchResultHighlighter(abstractSearchResultHighlighter):
def __init__(self):
super().__init__()
self.outline_index = None
def openView(self, searchResult):
r = Ref.textReference(searchResult.id())
Ref.open(r)
def retrieveWidget(self, searchResult):
editors = {
Outline.text: ("txtRedacText", QTextEdit, None),
Outline.title: ("txtTitle", QLineEdit, "grpProperties"),
Outline.summarySentence: ("txtSummarySentence", QLineEdit, "grpSummary"),
Outline.summaryFull: ("txtSummaryFull", QTextEdit, "grpSummary"),
Outline.notes: ("txtNotes", QTextEdit, "grpNotes"),
# TODO: Tried to highlight the combo box themselves (ie. cmbPOV) but didn't succeed.
Outline.POV: ("lblPOV", QLabel, "grpProperties"),
Outline.status: ("lblStatus", QLabel, "grpProperties"),
Outline.label: ("lblLabel", QLabel, "grpProperties")
}
editorName, editorClass, parentName = editors[searchResult.column()]
# Metadata columns are inside a splitter widget that my be hidden, so we show them.
if parentName:
metadataViewWidget = mainWindow().findChild(metadataView, "redacMetadata")
metadataViewWidget.show()
metadataViewWidget.findChild(collapsibleGroupBox2, parentName).button.setChecked(True)
widget = metadataViewWidget.findChild(editorClass, editorName)
else:
widget = mainWindow().mainEditor.currentEditor().findChild(editorClass, editorName)
return widget