mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 18:08:10 +00:00
Fix bug #11055.
See also https://marc.info/?l=lyx-devel&m=151709211602688&w=2.
(cherry picked from commit d3ee87eea2
)
This commit is contained in:
parent
bdf5ea7833
commit
0be5ae123c
@ -2484,6 +2484,11 @@ void Buffer::makeCitationLabels() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Buffer::invalidateCiteLabels() const
|
||||||
|
{
|
||||||
|
masterBuffer()->d->cite_labels_valid_ = false;
|
||||||
|
}
|
||||||
|
|
||||||
bool Buffer::citeLabelsValid() const
|
bool Buffer::citeLabelsValid() const
|
||||||
{
|
{
|
||||||
return masterBuffer()->d->cite_labels_valid_;
|
return masterBuffer()->d->cite_labels_valid_;
|
||||||
|
@ -529,6 +529,8 @@ public:
|
|||||||
///
|
///
|
||||||
void makeCitationLabels() const;
|
void makeCitationLabels() const;
|
||||||
///
|
///
|
||||||
|
void invalidateCiteLabels() const;
|
||||||
|
///
|
||||||
bool citeLabelsValid() const;
|
bool citeLabelsValid() const;
|
||||||
///
|
///
|
||||||
void getLabelList(std::vector<docstring> &) const;
|
void getLabelList(std::vector<docstring> &) const;
|
||||||
|
@ -1357,25 +1357,45 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case LFUN_UNDO:
|
case LFUN_UNDO: {
|
||||||
dr.setMessage(_("Undo"));
|
dr.setMessage(_("Undo"));
|
||||||
cur.clearSelection();
|
cur.clearSelection();
|
||||||
|
// We need to find out if the bibliography information
|
||||||
|
// has changed. See bug #11055.
|
||||||
|
// So these should not be references...
|
||||||
|
LayoutModuleList const engines = buffer().params().citeEngine();
|
||||||
|
CiteEngineType const enginetype = buffer().params().citeEngineType();
|
||||||
if (!cur.textUndo())
|
if (!cur.textUndo())
|
||||||
dr.setMessage(_("No further undo information"));
|
dr.setMessage(_("No further undo information"));
|
||||||
else
|
else {
|
||||||
dr.screenUpdate(Update::Force | Update::FitCursor);
|
dr.screenUpdate(Update::Force | Update::FitCursor);
|
||||||
dr.forceBufferUpdate();
|
dr.forceBufferUpdate();
|
||||||
|
if (buffer().params().citeEngine() != engines ||
|
||||||
|
buffer().params().citeEngineType() != enginetype)
|
||||||
|
buffer().invalidateCiteLabels();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case LFUN_REDO:
|
case LFUN_REDO: {
|
||||||
dr.setMessage(_("Redo"));
|
dr.setMessage(_("Redo"));
|
||||||
cur.clearSelection();
|
cur.clearSelection();
|
||||||
|
// We need to find out if the bibliography information
|
||||||
|
// has changed. See bug #11055.
|
||||||
|
// So these should not be references...
|
||||||
|
LayoutModuleList const engines = buffer().params().citeEngine();
|
||||||
|
CiteEngineType const enginetype = buffer().params().citeEngineType();
|
||||||
if (!cur.textRedo())
|
if (!cur.textRedo())
|
||||||
dr.setMessage(_("No further redo information"));
|
dr.setMessage(_("No further redo information"));
|
||||||
else
|
else {
|
||||||
dr.screenUpdate(Update::Force | Update::FitCursor);
|
dr.screenUpdate(Update::Force | Update::FitCursor);
|
||||||
dr.forceBufferUpdate();
|
dr.forceBufferUpdate();
|
||||||
|
if (buffer().params().citeEngine() != engines ||
|
||||||
|
buffer().params().citeEngineType() != enginetype)
|
||||||
|
buffer().invalidateCiteLabels();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case LFUN_FONT_STATE:
|
case LFUN_FONT_STATE:
|
||||||
dr.setMessage(cur.currentState(false));
|
dr.setMessage(cur.currentState(false));
|
||||||
|
@ -75,6 +75,14 @@ public:
|
|||||||
/// to be made.
|
/// to be made.
|
||||||
bool adaptToBaseClass(LayoutFile const * const lay,
|
bool adaptToBaseClass(LayoutFile const * const lay,
|
||||||
std::list<std::string> const & removedModules);
|
std::list<std::string> const & removedModules);
|
||||||
|
///
|
||||||
|
bool operator==(LayoutModuleList const & other) const {
|
||||||
|
return lml_ == other.lml_;
|
||||||
|
}
|
||||||
|
///
|
||||||
|
bool operator!=(LayoutModuleList const & other) const {
|
||||||
|
return !operator==(other);
|
||||||
|
}
|
||||||
private:
|
private:
|
||||||
/// Removes modules excluded by, provided by, etc, the base class.
|
/// Removes modules excluded by, provided by, etc, the base class.
|
||||||
/// \param lay The document class against which to check.
|
/// \param lay The document class against which to check.
|
||||||
|
Loading…
Reference in New Issue
Block a user