Clean up search layout a little

This commit is contained in:
Veronica Berglyd Olsen
2024-03-27 13:29:54 +01:00
parent 2d9b57b534
commit 4e5a08d3dd
+21 -7
View File
@@ -28,14 +28,14 @@ import logging
from time import time from time import time
from PyQt5.QtCore import QSize, Qt, pyqtSignal, pyqtSlot from PyQt5.QtCore import QSize, Qt, pyqtSignal, pyqtSlot
from PyQt5.QtGui import QCursor, QKeyEvent, QPalette from PyQt5.QtGui import QCursor, QKeyEvent
from PyQt5.QtWidgets import ( from PyQt5.QtWidgets import (
QHBoxLayout, QHeaderView, QLabel, QLineEdit, QToolBar, QTreeWidget, QFrame, QHBoxLayout, QHeaderView, QLabel, QLineEdit, QToolBar, QTreeWidget,
QTreeWidgetItem, QVBoxLayout, QWidget, qApp QTreeWidgetItem, QVBoxLayout, QWidget, qApp
) )
from novelwriter import CONFIG, SHARED from novelwriter import CONFIG, SHARED
from novelwriter.common import checkInt from novelwriter.common import checkInt, cssCol
from novelwriter.core.coretools import DocSearch from novelwriter.core.coretools import DocSearch
from novelwriter.core.item import NWItem from novelwriter.core.item import NWItem
@@ -63,6 +63,7 @@ class GuiProjectSearch(QWidget):
iPx = SHARED.theme.baseIconSize iPx = SHARED.theme.baseIconSize
mPx = CONFIG.pxInt(2) mPx = CONFIG.pxInt(2)
tPx = CONFIG.pxInt(4)
self._time = time() self._time = time()
self._search = DocSearch() self._search = DocSearch()
@@ -71,7 +72,7 @@ class GuiProjectSearch(QWidget):
# Header # Header
self.viewLabel = QLabel(self.tr("Project Search")) self.viewLabel = QLabel(self.tr("Project Search"))
self.viewLabel.setFont(SHARED.theme.guiFontB) self.viewLabel.setFont(SHARED.theme.guiFontB)
self.viewLabel.setContentsMargins(mPx, mPx, 0, mPx) self.viewLabel.setContentsMargins(mPx, tPx, 0, mPx)
# Options # Options
self.searchOpt = QToolBar(self) self.searchOpt = QToolBar(self)
@@ -96,7 +97,7 @@ class GuiProjectSearch(QWidget):
# Search Box # Search Box
self.searchText = QLineEdit(self) self.searchText = QLineEdit(self)
self.searchText.setPlaceholderText(self.tr("Search text ...")) self.searchText.setPlaceholderText(self.tr("Search"))
self.searchText.setClearButtonEnabled(True) self.searchText.setClearButtonEnabled(True)
self.searchAction = self.searchText.addAction( self.searchAction = self.searchText.addAction(
@@ -110,6 +111,9 @@ class GuiProjectSearch(QWidget):
self.searchResult.setColumnCount(2) self.searchResult.setColumnCount(2)
self.searchResult.setIconSize(QSize(iPx, iPx)) self.searchResult.setIconSize(QSize(iPx, iPx))
self.searchResult.setIndentation(iPx) self.searchResult.setIndentation(iPx)
self.searchResult.setFrameStyle(QFrame.Shape.NoFrame)
self.searchResult.setUniformRowHeights(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)
@@ -144,9 +148,19 @@ class GuiProjectSearch(QWidget):
def updateTheme(self) -> None: def updateTheme(self) -> None:
"""Update theme elements.""" """Update theme elements."""
bPx = CONFIG.pxInt(1)
mPx = CONFIG.pxInt(2)
qPalette = self.palette() qPalette = self.palette()
qPalette.setBrush(QPalette.ColorRole.Window, qPalette.base()) colBase = cssCol(qPalette.base().color())
self.setPalette(qPalette) colFocus = cssCol(qPalette.highlight().color())
self.setStyleSheet(
f"QLabel {{background: {colBase};}} "
f"QToolBar {{padding: 0; background: {colBase};}} "
f"QLineEdit {{border: {bPx}px solid {colBase}; padding: {mPx}px;}} "
f"QLineEdit:focus {{border: {bPx}px solid {colFocus};}} "
)
self.searchAction.setIcon(SHARED.theme.getIcon("search")) self.searchAction.setIcon(SHARED.theme.getIcon("search"))
self.toggleCase.setIcon(SHARED.theme.getIcon("search_case")) self.toggleCase.setIcon(SHARED.theme.getIcon("search_case"))