From 4e5a08d3dd41ee9ca6f738fd74e394537d0e1635 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Wed, 27 Mar 2024 13:29:54 +0100 Subject: [PATCH] Clean up search layout a little --- novelwriter/gui/search.py | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/novelwriter/gui/search.py b/novelwriter/gui/search.py index 27ef4b4b..50ef6492 100644 --- a/novelwriter/gui/search.py +++ b/novelwriter/gui/search.py @@ -28,14 +28,14 @@ import logging from time import time 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 ( - QHBoxLayout, QHeaderView, QLabel, QLineEdit, QToolBar, QTreeWidget, + QFrame, QHBoxLayout, QHeaderView, QLabel, QLineEdit, QToolBar, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget, qApp ) 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.item import NWItem @@ -63,6 +63,7 @@ class GuiProjectSearch(QWidget): iPx = SHARED.theme.baseIconSize mPx = CONFIG.pxInt(2) + tPx = CONFIG.pxInt(4) self._time = time() self._search = DocSearch() @@ -71,7 +72,7 @@ class GuiProjectSearch(QWidget): # Header self.viewLabel = QLabel(self.tr("Project Search")) self.viewLabel.setFont(SHARED.theme.guiFontB) - self.viewLabel.setContentsMargins(mPx, mPx, 0, mPx) + self.viewLabel.setContentsMargins(mPx, tPx, 0, mPx) # Options self.searchOpt = QToolBar(self) @@ -96,7 +97,7 @@ class GuiProjectSearch(QWidget): # Search Box self.searchText = QLineEdit(self) - self.searchText.setPlaceholderText(self.tr("Search text ...")) + self.searchText.setPlaceholderText(self.tr("Search")) self.searchText.setClearButtonEnabled(True) self.searchAction = self.searchText.addAction( @@ -110,6 +111,9 @@ class GuiProjectSearch(QWidget): self.searchResult.setColumnCount(2) self.searchResult.setIconSize(QSize(iPx, 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.itemSelectionChanged.connect(self._searchResultSelected) @@ -144,9 +148,19 @@ class GuiProjectSearch(QWidget): def updateTheme(self) -> None: """Update theme elements.""" + bPx = CONFIG.pxInt(1) + mPx = CONFIG.pxInt(2) + qPalette = self.palette() - qPalette.setBrush(QPalette.ColorRole.Window, qPalette.base()) - self.setPalette(qPalette) + colBase = cssCol(qPalette.base().color()) + 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.toggleCase.setIcon(SHARED.theme.getIcon("search_case"))