Merge branch 'main' into espresso_theme
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
|
"""Create the app. This is done in a function to make it easier to
|
||||||
block app creation during testing.
|
block app creation during testing.
|
||||||
"""
|
"""
|
||||||
app = QApplication([CONFIG.appName, f"-style={style}"])
|
app = QApplication([CONFIG.appName])
|
||||||
|
app.setStyle(style)
|
||||||
app.setApplicationName(CONFIG.appName)
|
app.setApplicationName(CONFIG.appName)
|
||||||
app.setApplicationVersion(__version__)
|
app.setApplicationVersion(__version__)
|
||||||
app.setOrganizationDomain(__domain__)
|
app.setOrganizationDomain(__domain__)
|
||||||
|
|||||||
@@ -69,10 +69,10 @@ hidden = faded
|
|||||||
shortcode = green
|
shortcode = green
|
||||||
keyword = red
|
keyword = red
|
||||||
tag = green
|
tag = green
|
||||||
value = blue
|
value = green
|
||||||
optional = green
|
optional = green
|
||||||
spellcheckline = red
|
spellcheckline = red
|
||||||
errorline = green
|
errorline = green
|
||||||
replacetag = green
|
replacetag = green
|
||||||
modifier = green
|
modifier = blue
|
||||||
texthighlight = yellow:72
|
texthighlight = yellow:72
|
||||||
|
|||||||
@@ -69,10 +69,10 @@ hidden = faded
|
|||||||
shortcode = green
|
shortcode = green
|
||||||
keyword = red
|
keyword = red
|
||||||
tag = green
|
tag = green
|
||||||
value = blue
|
value = green
|
||||||
optional = green
|
optional = green
|
||||||
spellcheckline = red
|
spellcheckline = red
|
||||||
errorline = green
|
errorline = green
|
||||||
replacetag = green
|
replacetag = green
|
||||||
modifier = green
|
modifier = blue
|
||||||
texthighlight = yellow:72
|
texthighlight = yellow:72
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ licenseurl = https://github.com/altercation/solarized/blob/master/LICENSE
|
|||||||
##
|
##
|
||||||
|
|
||||||
[Base]
|
[Base]
|
||||||
base = #073642
|
base = #002b36
|
||||||
default = #fdf6e3
|
default = #fdf6e3
|
||||||
faded = #eee8d5
|
faded = #eee8d5
|
||||||
red = #dc322f
|
red = #dc322f
|
||||||
@@ -51,12 +51,12 @@ inactive = red
|
|||||||
disabled = faded
|
disabled = faded
|
||||||
|
|
||||||
[Palette]
|
[Palette]
|
||||||
window = #002b36
|
window = #073642
|
||||||
windowtext = default
|
windowtext = default
|
||||||
base = base
|
base = base
|
||||||
alternatebase = #586e75
|
alternatebase = #586e75
|
||||||
text = default
|
text = default
|
||||||
tooltipbase = yellow
|
tooltipbase = yellow:L150
|
||||||
tooltiptext = #002b36
|
tooltiptext = #002b36
|
||||||
button = base
|
button = base
|
||||||
buttontext = default
|
buttontext = default
|
||||||
@@ -75,21 +75,21 @@ errortext = red
|
|||||||
[Syntax]
|
[Syntax]
|
||||||
background = base
|
background = base
|
||||||
text = default
|
text = default
|
||||||
line = default:32
|
line = #073642
|
||||||
link = blue
|
link = blue
|
||||||
headertext = default:D125
|
headertext = blue
|
||||||
headertag = cyan
|
headertag = #657b83
|
||||||
emphasis = blue
|
emphasis = blue
|
||||||
dialog = cyan
|
dialog = cyan
|
||||||
altdialog = cyan
|
altdialog = red
|
||||||
note = cyan:L115
|
note = cyan:D125
|
||||||
hidden = default:D150
|
hidden = default:L200
|
||||||
shortcode = yellow
|
shortcode = blue
|
||||||
keyword = green
|
keyword = green
|
||||||
tag = orange
|
tag = yellow
|
||||||
value = orange
|
value = orange
|
||||||
optional = cyan:L115
|
optional = cyan:D125
|
||||||
spellcheckline = orange
|
spellcheckline = red
|
||||||
errorline = red
|
errorline = red
|
||||||
replacetag = green
|
replacetag = green
|
||||||
modifier = yellow
|
modifier = yellow
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ licenseurl = https://github.com/altercation/solarized/blob/master/LICENSE
|
|||||||
##
|
##
|
||||||
|
|
||||||
[Base]
|
[Base]
|
||||||
base = #eee8d5
|
base = #fdf6e3
|
||||||
default = #002b36
|
default = #002b36
|
||||||
faded = #073642
|
faded = #073642
|
||||||
red = #dc322f
|
red = #dc322f
|
||||||
@@ -51,12 +51,12 @@ inactive = red
|
|||||||
disabled = faded
|
disabled = faded
|
||||||
|
|
||||||
[Palette]
|
[Palette]
|
||||||
window = #fdf6e3
|
window = #eee8d5
|
||||||
windowtext = default
|
windowtext = default
|
||||||
base = base
|
base = base
|
||||||
alternatebase = #93a1a1
|
alternatebase = #93a1a1
|
||||||
text = default
|
text = default
|
||||||
tooltipbase = yellow
|
tooltipbase = yellow:L150
|
||||||
tooltiptext = #002b36
|
tooltiptext = #002b36
|
||||||
button = base
|
button = base
|
||||||
buttontext = default
|
buttontext = default
|
||||||
@@ -75,21 +75,21 @@ errortext = red
|
|||||||
[Syntax]
|
[Syntax]
|
||||||
background = base
|
background = base
|
||||||
text = default
|
text = default
|
||||||
line = default:32
|
line = #eee8d5
|
||||||
link = blue
|
link = blue
|
||||||
headertext = default:L125
|
headertext = blue
|
||||||
headertag = cyan
|
headertag = #657b83
|
||||||
emphasis = blue
|
emphasis = blue
|
||||||
dialog = cyan
|
dialog = cyan
|
||||||
altdialog = cyan
|
altdialog = red
|
||||||
note = cyan:D125
|
note = cyan:D125
|
||||||
hidden = default:L200
|
hidden = default:L200
|
||||||
shortcode = yellow
|
shortcode = blue
|
||||||
keyword = green
|
keyword = green
|
||||||
tag = orange
|
tag = yellow
|
||||||
value = orange
|
value = orange
|
||||||
optional = cyan:D125
|
optional = cyan:D125
|
||||||
spellcheckline = orange
|
spellcheckline = red
|
||||||
errorline = red
|
errorline = red
|
||||||
replacetag = green
|
replacetag = green
|
||||||
modifier = yellow
|
modifier = yellow
|
||||||
|
|||||||
@@ -28,13 +28,13 @@ import logging
|
|||||||
|
|
||||||
from PyQt6.QtCore import pyqtSlot
|
from PyQt6.QtCore import pyqtSlot
|
||||||
from PyQt6.QtWidgets import (
|
from PyQt6.QtWidgets import (
|
||||||
QAbstractItemView, QComboBox, QDialogButtonBox, QGridLayout, QLabel,
|
QAbstractItemView, QDialogButtonBox, QGridLayout, QLabel, QListWidget,
|
||||||
QListWidget, QListWidgetItem, QVBoxLayout, QWidget
|
QListWidgetItem, QVBoxLayout, QWidget
|
||||||
)
|
)
|
||||||
|
|
||||||
from novelwriter import SHARED
|
from novelwriter import SHARED
|
||||||
from novelwriter.extensions.configlayout import NColorLabel
|
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.extensions.switch import NSwitch
|
||||||
from novelwriter.types import QtAccepted, QtDialogCancel, QtDialogOk, QtUserRole
|
from novelwriter.types import QtAccepted, QtDialogCancel, QtDialogOk, QtUserRole
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ class GuiDocSplit(NDialog):
|
|||||||
self.listBox.setMinimumWidth(400)
|
self.listBox.setMinimumWidth(400)
|
||||||
self.listBox.setMinimumHeight(180)
|
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 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 2 (Chapter)"), 2)
|
||||||
self.splitLevel.addItem(self.tr("Split up to Heading Level 3 (Scene)"), 3)
|
self.splitLevel.addItem(self.tr("Split up to Heading Level 3 (Scene)"), 3)
|
||||||
|
|||||||
@@ -180,11 +180,11 @@ class GuiPreferences(NDialog):
|
|||||||
|
|
||||||
self.mainForm.addRow(
|
self.mainForm.addRow(
|
||||||
self.tr("Light colour theme"), self.lightTheme,
|
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.mainForm.addRow(
|
||||||
self.tr("Dark colour theme"), self.darkTheme,
|
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
|
# Icon Theme
|
||||||
|
|||||||
@@ -117,12 +117,19 @@ class NTreeView(QTreeView):
|
|||||||
|
|
||||||
class NComboBox(QComboBox):
|
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)
|
super().__init__(parent=parent)
|
||||||
self.setFocusPolicy(Qt.FocusPolicy.StrongFocus)
|
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
|
return
|
||||||
|
|
||||||
def wheelEvent(self, event: QWheelEvent) -> None:
|
def wheelEvent(self, event: QWheelEvent) -> None:
|
||||||
|
"""Only capture the mouse wheel if the widget has focus."""
|
||||||
if self.hasFocus():
|
if self.hasFocus():
|
||||||
super().wheelEvent(event)
|
super().wheelEvent(event)
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -25,14 +25,19 @@ from __future__ import annotations
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from PyQt6.QtCore import pyqtSignal, pyqtSlot
|
from PyQt6.QtCore import pyqtSignal, pyqtSlot
|
||||||
from PyQt6.QtGui import QPalette
|
from PyQt6.QtGui import QPalette
|
||||||
from PyQt6.QtWidgets import QComboBox, QWidget
|
from PyQt6.QtWidgets import QComboBox
|
||||||
|
|
||||||
from novelwriter import SHARED
|
from novelwriter import SHARED
|
||||||
from novelwriter.constants import nwLabels
|
from novelwriter.constants import nwLabels
|
||||||
from novelwriter.enum import nwItemClass
|
from novelwriter.enum import nwItemClass
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from PyQt6.QtWidgets import QWidget
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -126,6 +126,7 @@ QtHeaderFixed = QHeaderView.ResizeMode.Fixed
|
|||||||
|
|
||||||
# Scroll Bar Policy
|
# Scroll Bar Policy
|
||||||
|
|
||||||
|
QtScrollAlwaysOn = Qt.ScrollBarPolicy.ScrollBarAlwaysOn
|
||||||
QtScrollAlwaysOff = Qt.ScrollBarPolicy.ScrollBarAlwaysOff
|
QtScrollAlwaysOff = Qt.ScrollBarPolicy.ScrollBarAlwaysOff
|
||||||
QtScrollAsNeeded = Qt.ScrollBarPolicy.ScrollBarAsNeeded
|
QtScrollAsNeeded = Qt.ScrollBarPolicy.ScrollBarAsNeeded
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user