commit ed9aed717130f6b68852151de736a78161144569
Author: Juergen Spitzmueller <[email protected]>
Date: Fri Apr 4 17:47:13 2025 +0200
Fix crossrefs dialog filter for hierarchical target lists
---
src/frontends/qt/GuiRef.cpp | 34 +++++++++++++++++++++++++++-------
1 file changed, 27 insertions(+), 7 deletions(-)
diff --git a/src/frontends/qt/GuiRef.cpp b/src/frontends/qt/GuiRef.cpp
index baa1d8c737..1d31170733 100644
--- a/src/frontends/qt/GuiRef.cpp
+++ b/src/frontends/qt/GuiRef.cpp
@@ -939,10 +939,14 @@ void GuiRef::updateRefs()
if (show_labels) {
refsTW->header()->setVisible(true);
availableLA->setText(qt_("Available &Labels:"));
+ filter_->setPlaceholderText(qt_("All available labels"));
+ filter_->setToolTip(qt_("Enter string to filter the list of
available labels"));
updateAvailableLabels();
} else {
refsTW->header()->setVisible(false);
availableLA->setText(qt_("Available &Targets:"));
+ filter_->setPlaceholderText(qt_("All available targets"));
+ filter_->setToolTip(qt_("Enter string to filter the list of
available targets"));
updateAvailableTargets();
}
}
@@ -973,16 +977,32 @@ void GuiRef::gotoBookmark()
void GuiRef::filterLabels()
{
+ bool const show_labels =
targetCO->itemData(targetCO->currentIndex()).toString() == "labels";
Qt::CaseSensitivity cs = csFindCB->isChecked() ?
Qt::CaseSensitive : Qt::CaseInsensitive;
QTreeWidgetItemIterator it(refsTW);
- while (*it) {
- (*it)->setHidden(
- (*it)->childCount() == 0
- && !(*it)->text(0).contains(filter_->text(), cs)
- && !(*it)->text(1).contains(filter_->text(), cs)
- );
- ++it;
+ if (show_labels) {
+ while (*it) {
+ (*it)->setHidden(
+ (*it)->childCount() == 0
+ && !(*it)->text(0).contains(filter_->text(), cs)
+ && !(*it)->text(1).contains(filter_->text(), cs)
+ );
+ ++it;
+ }
+ } else {
+ QTreeWidgetItemIterator itt(refsTW);
+ while (*it) {
+
(*it)->setHidden(!(*it)->text(0).contains(filter_->text(), cs));
+ itt = it;
+ ++it;
+ }
+ // recursively unhide parents of unhidden children
+ while (*itt) {
+ if (!(*itt)->isHidden() && (*itt)->parent())
+ (*itt)->parent()->setHidden(false);
+ --itt;
+ }
}
}
--
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs