]> git.lyx.org Git - features.git/commitdiff
Master/Child: do not clean includeonly list while editing (part of #12470)
authorJuergen Spitzmueller <spitz@lyx.org>
Tue, 27 Dec 2022 14:36:36 +0000 (15:36 +0100)
committerJuergen Spitzmueller <spitz@lyx.org>
Tue, 27 Dec 2022 14:36:36 +0000 (15:36 +0100)
src/frontends/qt/GuiDocument.cpp
src/frontends/qt/GuiDocument.h

index 1effaa114dd2d8018d1c2d4c64d067b007165a96..47889caf3ce4628c5a56f24b05e7cb7c9f488f48 100644 (file)
@@ -1989,16 +1989,16 @@ void GuiDocument::includeonlyClicked(QTreeWidgetItem * item, int)
                return;
 
        string child = fromqstr(item->text(0));
+
        if (child.empty())
                return;
 
-       if (std::find(includeonlys_.begin(),
-                     includeonlys_.end(), child) != includeonlys_.end())
+       if (isChildIncluded(child))
                includeonlys_.remove(child);
        else
                includeonlys_.push_back(child);
 
-       updateIncludeonlys();
+       updateIncludeonlys(false);
        change_adaptor();
 }
 
@@ -3768,6 +3768,7 @@ void GuiDocument::applyView()
 
        // Master/Child
        bp_.clearIncludedChildren();
+       updateIncludeonlys();
        if (masterChildModule->includeonlyRB->isChecked()) {
                list<string>::const_iterator it = includeonlys_.begin();
                for (; it != includeonlys_.end() ; ++it) {
@@ -4690,7 +4691,7 @@ void GuiDocument::updateIncludeonlyDisplay()
 }
 
 
-void GuiDocument::updateIncludeonlys()
+void GuiDocument::updateIncludeonlys(bool const cleanup)
 {
        masterChildModule->childrenTW->clear();
        QString const no = qt_("No");
@@ -4716,7 +4717,7 @@ void GuiDocument::updateIncludeonlys()
        }
        // Both if all children are included and if none is included
        // is equal to "include all" (i.e., omit \includeonly).
-       if (!has_unincluded || all_unincluded)
+       if (cleanup && (!has_unincluded || all_unincluded))
                includeonlys_.clear();
 }
 
index 745afc399889ab5d61da9d77ca63052fa8d720e6..ef143ab638f4acc2c97a337c3bdeb0bf20a344d1 100644 (file)
@@ -215,7 +215,7 @@ private:
        ///
        void updateIncludeonlyDisplay();
        ///
-       void updateIncludeonlys();
+       void updateIncludeonlys(bool const cleanup = true);
        ///
        void updateDefaultBiblio(std::string const & style,
                                 std::string const & which = std::string());