From: Juergen Spitzmueller Date: Thu, 12 Mar 2020 09:37:56 +0000 (+0100) Subject: Fix UI quirk in IncludeOnly settings X-Git-Tag: 2.3.5~89 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=48cb1aa3b76848558f417e0ecd6a893173c298e0;p=features.git Fix UI quirk in IncludeOnly settings Fixes #11564 (cherry picked from commit b568a49593b6d52f267d8fcfbc0a46dc7ecb613d) --- diff --git a/src/frontends/qt4/GuiDocument.cpp b/src/frontends/qt4/GuiDocument.cpp index 122a4905fe..307703d322 100644 --- a/src/frontends/qt4/GuiDocument.cpp +++ b/src/frontends/qt4/GuiDocument.cpp @@ -3291,6 +3291,7 @@ void GuiDocument::applyView() } bp_.maintain_unincluded_children = masterChildModule->maintainAuxCB->isChecked(); + updateIncludeonlyDisplay(); // Float Placement bp_.float_placement = floatModule->get(); @@ -3818,6 +3819,7 @@ void GuiDocument::paramsToDialog() masterChildModule->setEnabled(true); includeonlys_ = bp_.getIncludedChildren(); updateIncludeonlys(); + updateIncludeonlyDisplay(); } masterChildModule->maintainAuxCB->setChecked( bp_.maintain_unincluded_children); @@ -4091,12 +4093,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); @@ -4106,6 +4104,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(); @@ -4124,17 +4131,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/qt4/GuiDocument.h b/src/frontends/qt4/GuiDocument.h index dd51bac8c4..04e22c3968 100644 --- a/src/frontends/qt4/GuiDocument.h +++ b/src/frontends/qt4/GuiDocument.h @@ -198,6 +198,8 @@ private: /// void updateSelectedModules(); /// + void updateIncludeonlyDisplay(); + /// void updateIncludeonlys(); /// void updateDefaultBiblio(std::string const & style, diff --git a/status.23x b/status.23x index f06d283f47..9b39a48686 100644 --- a/status.23x +++ b/status.23x @@ -72,6 +72,9 @@ What's new - Fix problem with validation of InsetLayout. +- Fix over-hasty resetting of dialog in Child Documents settings (bug 11564). + + * INTERNALS