Merge branch 'main' into theme_settings
This commit is contained in:
@@ -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__)
|
||||
|
||||
@@ -67,10 +67,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
|
||||
|
||||
@@ -67,10 +67,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
|
||||
|
||||
@@ -26,7 +26,7 @@ url = https://ethanschoonover.com/solarized/
|
||||
##
|
||||
|
||||
[Base]
|
||||
base = #073642
|
||||
base = #002b36
|
||||
default = #fdf6e3
|
||||
faded = #eee8d5
|
||||
red = #dc322f
|
||||
@@ -50,12 +50,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
|
||||
@@ -74,21 +74,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
|
||||
|
||||
@@ -26,7 +26,7 @@ url = https://ethanschoonover.com/solarized/
|
||||
##
|
||||
|
||||
[Base]
|
||||
base = #eee8d5
|
||||
base = #fdf6e3
|
||||
default = #002b36
|
||||
faded = #073642
|
||||
red = #dc322f
|
||||
@@ -50,12 +50,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
|
||||
@@ -74,21 +74,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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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__)
|
||||
|
||||
|
||||
|
||||
@@ -126,6 +126,7 @@ QtHeaderFixed = QHeaderView.ResizeMode.Fixed
|
||||
|
||||
# Scroll Bar Policy
|
||||
|
||||
QtScrollAlwaysOn = Qt.ScrollBarPolicy.ScrollBarAlwaysOn
|
||||
QtScrollAlwaysOff = Qt.ScrollBarPolicy.ScrollBarAlwaysOff
|
||||
QtScrollAsNeeded = Qt.ScrollBarPolicy.ScrollBarAsNeeded
|
||||
|
||||
|
||||
Reference in New Issue
Block a user