Merge branch 'main' into espresso_theme

This commit is contained in:
Veronica Berglyd Olsen
2025-06-20 00:17:12 +02:00
committed by GitHub
10 changed files with 50 additions and 36 deletions
+2 -1
View File
@@ -296,7 +296,8 @@ def _createApp(style: str) -> QApplication:
"""Create the app. This is done in a function to make it easier to
block app creation during testing.
"""
app = QApplication([CONFIG.appName, f"-style={style}"])
app = QApplication([CONFIG.appName])
app.setStyle(style)
app.setApplicationName(CONFIG.appName)
app.setApplicationVersion(__version__)
app.setOrganizationDomain(__domain__)
+2 -2
View File
@@ -69,10 +69,10 @@ hidden = faded
shortcode = green
keyword = red
tag = green
value = blue
value = green
optional = green
spellcheckline = red
errorline = green
replacetag = green
modifier = green
modifier = blue
texthighlight = yellow:72
+2 -2
View File
@@ -69,10 +69,10 @@ hidden = faded
shortcode = green
keyword = red
tag = green
value = blue
value = green
optional = green
spellcheckline = red
errorline = green
replacetag = green
modifier = green
modifier = blue
texthighlight = yellow:72
+13 -13
View File
@@ -27,7 +27,7 @@ licenseurl = https://github.com/altercation/solarized/blob/master/LICENSE
##
[Base]
base = #073642
base = #002b36
default = #fdf6e3
faded = #eee8d5
red = #dc322f
@@ -51,12 +51,12 @@ inactive = red
disabled = faded
[Palette]
window = #002b36
window = #073642
windowtext = default
base = base
alternatebase = #586e75
text = default
tooltipbase = yellow
tooltipbase = yellow:L150
tooltiptext = #002b36
button = base
buttontext = default
@@ -75,21 +75,21 @@ errortext = red
[Syntax]
background = base
text = default
line = default:32
line = #073642
link = blue
headertext = default:D125
headertag = cyan
headertext = blue
headertag = #657b83
emphasis = blue
dialog = cyan
altdialog = cyan
note = cyan:L115
hidden = default:D150
shortcode = yellow
altdialog = red
note = cyan:D125
hidden = default:L200
shortcode = blue
keyword = green
tag = orange
tag = yellow
value = orange
optional = cyan:L115
spellcheckline = orange
optional = cyan:D125
spellcheckline = red
errorline = red
replacetag = green
modifier = yellow
+10 -10
View File
@@ -27,7 +27,7 @@ licenseurl = https://github.com/altercation/solarized/blob/master/LICENSE
##
[Base]
base = #eee8d5
base = #fdf6e3
default = #002b36
faded = #073642
red = #dc322f
@@ -51,12 +51,12 @@ inactive = red
disabled = faded
[Palette]
window = #fdf6e3
window = #eee8d5
windowtext = default
base = base
alternatebase = #93a1a1
text = default
tooltipbase = yellow
tooltipbase = yellow:L150
tooltiptext = #002b36
button = base
buttontext = default
@@ -75,21 +75,21 @@ errortext = red
[Syntax]
background = base
text = default
line = default:32
line = #eee8d5
link = blue
headertext = default:L125
headertag = cyan
headertext = blue
headertag = #657b83
emphasis = blue
dialog = cyan
altdialog = cyan
altdialog = red
note = cyan:D125
hidden = default:L200
shortcode = yellow
shortcode = blue
keyword = green
tag = orange
tag = yellow
value = orange
optional = cyan:D125
spellcheckline = orange
spellcheckline = red
errorline = red
replacetag = green
modifier = yellow
+4 -4
View File
@@ -28,13 +28,13 @@ import logging
from PyQt6.QtCore import pyqtSlot
from PyQt6.QtWidgets import (
QAbstractItemView, QComboBox, QDialogButtonBox, QGridLayout, QLabel,
QListWidget, QListWidgetItem, QVBoxLayout, QWidget
QAbstractItemView, QDialogButtonBox, QGridLayout, QLabel, QListWidget,
QListWidgetItem, QVBoxLayout, QWidget
)
from novelwriter import SHARED
from novelwriter.extensions.configlayout import NColorLabel
from novelwriter.extensions.modified import NDialog
from novelwriter.extensions.modified import NComboBox, NDialog
from novelwriter.extensions.switch import NSwitch
from novelwriter.types import QtAccepted, QtDialogCancel, QtDialogOk, QtUserRole
@@ -79,7 +79,7 @@ class GuiDocSplit(NDialog):
self.listBox.setMinimumWidth(400)
self.listBox.setMinimumHeight(180)
self.splitLevel = QComboBox(self)
self.splitLevel = NComboBox(self)
self.splitLevel.addItem(self.tr("Split on Heading Level 1 (Partition)"), 1)
self.splitLevel.addItem(self.tr("Split up to Heading Level 2 (Chapter)"), 2)
self.splitLevel.addItem(self.tr("Split up to Heading Level 3 (Scene)"), 3)
+2 -2
View File
@@ -180,11 +180,11 @@ class GuiPreferences(NDialog):
self.mainForm.addRow(
self.tr("Light colour theme"), self.lightTheme,
self.tr("User interface colour theme."), stretch=(3, 2)
self.tr("You can change theme mode from the sidebar."), stretch=(3, 2)
)
self.mainForm.addRow(
self.tr("Dark colour theme"), self.darkTheme,
self.tr("User interface colour theme."), stretch=(3, 2)
self.tr("You can change theme mode from the sidebar."), stretch=(3, 2)
)
# Icon Theme
+8 -1
View File
@@ -117,12 +117,19 @@ class NTreeView(QTreeView):
class NComboBox(QComboBox):
def __init__(self, parent: QWidget | None = None) -> None:
def __init__(self, parent: QWidget | None = None, maxItems: int = 15) -> None:
super().__init__(parent=parent)
self.setFocusPolicy(Qt.FocusPolicy.StrongFocus)
self.setMaxVisibleItems(maxItems)
# The style sheet disables Fusion style pop-up mode on some platforms
# and allows for scrolling of long lists of items
self.setStyleSheet("QComboBox {combobox-popup: 0;}")
return
def wheelEvent(self, event: QWheelEvent) -> None:
"""Only capture the mouse wheel if the widget has focus."""
if self.hasFocus():
super().wheelEvent(event)
else:
+6 -1
View File
@@ -25,14 +25,19 @@ from __future__ import annotations
import logging
from typing import TYPE_CHECKING
from PyQt6.QtCore import pyqtSignal, pyqtSlot
from PyQt6.QtGui import QPalette
from PyQt6.QtWidgets import QComboBox, QWidget
from PyQt6.QtWidgets import QComboBox
from novelwriter import SHARED
from novelwriter.constants import nwLabels
from novelwriter.enum import nwItemClass
if TYPE_CHECKING:
from PyQt6.QtWidgets import QWidget
logger = logging.getLogger(__name__)
+1
View File
@@ -126,6 +126,7 @@ QtHeaderFixed = QHeaderView.ResizeMode.Fixed
# Scroll Bar Policy
QtScrollAlwaysOn = Qt.ScrollBarPolicy.ScrollBarAlwaysOn
QtScrollAlwaysOff = Qt.ScrollBarPolicy.ScrollBarAlwaysOff
QtScrollAsNeeded = Qt.ScrollBarPolicy.ScrollBarAsNeeded