[LyX/master] Fix UI quirk in IncludeOnly settings

Juergen Spitzmueller spitz at lyx.org
Thu Mar 12 09:18:58 UTC 2020


commit b568a49593b6d52f267d8fcfbc0a46dc7ecb613d
Author: Juergen Spitzmueller <spitz at lyx.org>
Date:   Thu Mar 12 10:37:56 2020 +0100

    Fix UI quirk in IncludeOnly settings
    
    Fixes #11564
---
 src/frontends/qt/GuiDocument.cpp |   28 ++++++++++++++--------------
 src/frontends/qt/GuiDocument.h   |    2 ++
 2 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/src/frontends/qt/GuiDocument.cpp b/src/frontends/qt/GuiDocument.cpp
index 9ae6840..5ffccdc 100644
--- a/src/frontends/qt/GuiDocument.cpp
+++ b/src/frontends/qt/GuiDocument.cpp
@@ -3650,6 +3650,7 @@ void GuiDocument::applyView()
 	}
 	bp_.maintain_unincluded_children =
 		masterChildModule->maintainAuxCB->isChecked();
+	updateIncludeonlyDisplay();
 
 	// Float Settings
 	bp_.float_placement = floatModule->getPlacement();
@@ -4178,6 +4179,7 @@ void GuiDocument::paramsToDialog()
 		masterChildModule->setEnabled(true);
 		includeonlys_ = bp_.getIncludedChildren();
 		updateIncludeonlys();
+		updateIncludeonlyDisplay();
 	}
 	masterChildModule->maintainAuxCB->setChecked(
 		bp_.maintain_unincluded_children);
@@ -4514,12 +4516,8 @@ void GuiDocument::updateSelectedModules()
 }
 
 
-void GuiDocument::updateIncludeonlys()
+void GuiDocument::updateIncludeonlyDisplay()
 {
-	masterChildModule->childrenTW->clear();
-	QString const no = qt_("No");
-	QString const yes = qt_("Yes");
-
 	if (includeonlys_.empty()) {
 		masterChildModule->includeallRB->setChecked(true);
 		masterChildModule->childrenTW->setEnabled(false);
@@ -4529,6 +4527,15 @@ void GuiDocument::updateIncludeonlys()
 		masterChildModule->childrenTW->setEnabled(true);
 		masterChildModule->maintainAuxCB->setEnabled(true);
 	}
+}
+
+
+void GuiDocument::updateIncludeonlys()
+{
+	masterChildModule->childrenTW->clear();
+	QString const no = qt_("No");
+	QString const yes = qt_("Yes");
+
 	ListOfBuffers children = buffer().getChildren();
 	ListOfBuffers::const_iterator it  = children.begin();
 	ListOfBuffers::const_iterator end = children.end();
@@ -4547,17 +4554,10 @@ void GuiDocument::updateIncludeonlys()
 		else
 			all_unincluded = false;
 	}
-	// Both if all childs are included and if none is included
+	// Both if all children are included and if none is included
 	// is equal to "include all" (i.e., omit \includeonly).
-	// Thus, reset the GUI.
-	if (!has_unincluded || all_unincluded) {
-		masterChildModule->includeallRB->setChecked(true);
-		masterChildModule->childrenTW->setEnabled(false);
+	if (!has_unincluded || all_unincluded)
 		includeonlys_.clear();
-	}
-	// If all are included, we need to update again.
-	if (!has_unincluded)
-		updateIncludeonlys();
 }
 
 
diff --git a/src/frontends/qt/GuiDocument.h b/src/frontends/qt/GuiDocument.h
index 3e9aa7c..c7ea1b5 100644
--- a/src/frontends/qt/GuiDocument.h
+++ b/src/frontends/qt/GuiDocument.h
@@ -211,6 +211,8 @@ private:
 	///
 	void updateSelectedModules();
 	///
+	void updateIncludeonlyDisplay();
+	///
 	void updateIncludeonlys();
 	///
 	void updateDefaultBiblio(std::string const & style,


More information about the lyx-cvs mailing list