[LyX/master] Fix another old outliner bug (#9375)
Juergen Spitzmueller
spitz at lyx.org
Wed Feb 22 14:32:35 UTC 2023
commit 8fd1aaa46ea85dde9a0b19b427b72b406605a4d2
Author: Juergen Spitzmueller <spitz at lyx.org>
Date: Wed Feb 22 16:33:37 2023 +0100
Fix another old outliner bug (#9375)
Parts, chapters and sections have different LabelTypes, but this does
not mean they cannot be transformed into each other while doing
OUTLINE_IN/OUT
Not sure why the labeltype check is here anyway, but let's keep it.
---
src/Layout.h | 5 +++++
src/Text3.cpp | 6 +++---
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/Layout.h b/src/Layout.h
index 6efc512..6581155 100644
--- a/src/Layout.h
+++ b/src/Layout.h
@@ -292,6 +292,11 @@ public:
|| labeltype == LABEL_CENTERED
|| labeltype == LABEL_BIBLIO;
}
+ bool isNumHeadingLabelType() const {
+ return labeltype == LABEL_ABOVE
+ || labeltype == LABEL_CENTERED
+ || labeltype == LABEL_STATIC;
+ }
///
bool addToToc() const { return add_to_toc_; }
///
diff --git a/src/Text3.cpp b/src/Text3.cpp
index 148b1d4..d077dde 100644
--- a/src/Text3.cpp
+++ b/src/Text3.cpp
@@ -570,11 +570,11 @@ static void outline(OutlineOp mode, Cursor & cur, Text * text)
DocumentClass const & tc = buf.params().documentClass();
int const newtoclevel =
(mode == OutlineIn ? toclevel + 1 : toclevel - 1);
- LabelType const oldlabeltype = start->layout().labeltype;
for (auto const & lay : tc) {
- if (lay.toclevel == newtoclevel &&
- lay.labeltype == oldlabeltype) {
+ if (lay.toclevel == newtoclevel
+ && lay.isNumHeadingLabelType()
+ && start->layout().isNumHeadingLabelType()) {
start->setLayout(lay);
break;
}
More information about the lyx-cvs
mailing list