Fix UI quirk in IncludeOnly settings

Fixes #11564

(cherry picked from commit b568a49593)
This commit is contained in:
Juergen Spitzmueller 2020-03-12 10:37:56 +01:00
parent b108ea3129
commit 48cb1aa3b7
3 changed files with 19 additions and 14 deletions

View File

@ -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();
}

View File

@ -198,6 +198,8 @@ private:
///
void updateSelectedModules();
///
void updateIncludeonlyDisplay();
///
void updateIncludeonlys();
///
void updateDefaultBiblio(std::string const & style,

View File

@ -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