commit 097b17f7322609f2de6ea92f3ea6f1d0065bdea0
Author: Richard Heck <[email protected]>
Date: Mon Jun 6 19:36:27 2016 -0400
Restore last selected label when using the "go to label" feature
of the reference dialog.
(cherry picked from commit 9d5ffa8e752213379d0ff611bd16deec1ab21c0a)
diff --git a/src/frontends/qt4/GuiRef.cpp b/src/frontends/qt4/GuiRef.cpp
index 1150d58..555ccce 100644
--- a/src/frontends/qt4/GuiRef.cpp
+++ b/src/frontends/qt4/GuiRef.cpp
@@ -114,7 +114,13 @@ void GuiRef::changed_adaptor()
void GuiRef::gotoClicked()
{
+ // By setting last_reference_, we ensure that the reference
+ // to which we are going (or from which we are returning) is
+ // restored in the dialog. It's a bit of a hack, but it works,
+ // and no-one seems to have any better idea.
+ last_reference_ = referenceED->text();
gotoRef();
+ last_reference_.clear();
}
@@ -417,19 +423,18 @@ void GuiRef::redoRefs()
refsTW->addTopLevelItems(refsItems);
}
- referenceED->setText(oldSelection);
-
// restore the last selection or, for new insets, highlight
// the previous selection
if (!oldSelection.isEmpty() || !last_reference_.isEmpty()) {
bool const newInset = oldSelection.isEmpty();
QString textToFind = newInset ? last_reference_ : oldSelection;
+ referenceED->setText(textToFind);
last_reference_.clear();
QTreeWidgetItemIterator it(refsTW);
while (*it) {
if ((*it)->text(0) == textToFind) {
refsTW->setCurrentItem(*it);
- refsTW->setItemSelected(*it, !newInset);
+ refsTW->setItemSelected(*it, true);
//Make sure selected item is visible
refsTW->scrollToItem(*it);
last_reference_ = textToFind;
diff --git a/status.22x b/status.22x
index 1f25c54..0760d12 100644
--- a/status.22x
+++ b/status.22x
@@ -35,6 +35,9 @@ What's new
- Implement "Dissolve Inset" and "Show Label" context menu items for
arguments (bug 10150).
+- Restore selected reference when using "Go to label" and "Go back" in the
+ cross-reference dialog.
+
* DOCUMENTATION AND LOCALIZATION