mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 01:59:02 +00:00
Preview formatted references in the work area.
Patch from Daniel Ramoeller <d.lyx@web.de>, fixed up by RKH.
This commit is contained in:
parent
ca3004fc67
commit
2ad57dcb6b
@ -5548,6 +5548,12 @@ def revert_hequotes(document):
|
||||
document.body[i] = "\\begin_inset Quotes pld"
|
||||
|
||||
|
||||
def revert_formatted_refs(document):
|
||||
i = find_token(document.header, "\\use_formatted_ref", 0)
|
||||
if i != -1:
|
||||
del document.header[i]
|
||||
|
||||
|
||||
##
|
||||
# Conversion hub
|
||||
#
|
||||
@ -5627,11 +5633,14 @@ convert = [
|
||||
[615, [convert_acknowledgment,convert_ack_theorems]],
|
||||
[616, [convert_empty_macro]],
|
||||
[617, [convert_cov_options]],
|
||||
[618, []]
|
||||
[618, []],
|
||||
[619, []]
|
||||
]
|
||||
|
||||
revert = [[617, [revert_hequotes]],
|
||||
[616, [revert_expreambles,revert_exarg2,revert_linggloss2,revert_cov_options]],
|
||||
|
||||
revert = [[618, [revert_formatted_refs]],
|
||||
[617, [revert_hequotes]],
|
||||
[616, [revert_expreambles,revert_exarg2,revert_linggloss2,revert_cov_options]],
|
||||
[615, [revert_empty_macro]],
|
||||
[614, [revert_ack_theorems,revert_acknowledgment]],
|
||||
[613, [revert_hyper_other]],
|
||||
|
@ -5342,6 +5342,10 @@ void Buffer::Impl::setLabel(ParIterator & it, UpdateType utype) const
|
||||
|
||||
void Buffer::updateBuffer(ParIterator & parit, UpdateType utype, bool const deleted) const
|
||||
{
|
||||
// if fomatted references are shown in workarea update buffer accordingly
|
||||
if (params().use_formatted_ref)
|
||||
utype = OutputUpdate;
|
||||
|
||||
pushIncludedBuffer(this);
|
||||
// LASSERT: Is it safe to continue here, or should we just return?
|
||||
LASSERT(parit.pit() == 0, /**/);
|
||||
|
@ -488,6 +488,7 @@ BufferParams::BufferParams()
|
||||
shell_escape = false;
|
||||
output_sync = false;
|
||||
use_refstyle = true;
|
||||
use_formatted_ref = false;
|
||||
use_minted = false;
|
||||
use_lineno = false;
|
||||
|
||||
@ -1205,6 +1206,8 @@ string BufferParams::readToken(Lexer & lex, string const & token,
|
||||
lex >> output_sync_macro;
|
||||
} else if (token == "\\use_refstyle") {
|
||||
lex >> use_refstyle;
|
||||
} else if (token == "\\use_formatted_ref") {
|
||||
lex >> use_formatted_ref;
|
||||
} else if (token == "\\use_minted") {
|
||||
lex >> use_minted;
|
||||
} else if (token == "\\use_lineno") {
|
||||
@ -1433,6 +1436,7 @@ void BufferParams::writeFile(ostream & os, Buffer const * buf) const
|
||||
<< "\n\\suppress_date " << convert<string>(suppress_date)
|
||||
<< "\n\\justification " << convert<string>(justification)
|
||||
<< "\n\\use_refstyle " << use_refstyle
|
||||
<< "\n\\use_formatted_ref " << use_formatted_ref
|
||||
<< "\n\\use_minted " << use_minted
|
||||
<< "\n\\use_lineno " << use_lineno
|
||||
<< '\n';
|
||||
|
@ -606,6 +606,8 @@ public:
|
||||
std::string output_sync_macro;
|
||||
/// use refstyle? or prettyref?
|
||||
bool use_refstyle;
|
||||
/// use formatted references in the workarea?
|
||||
bool use_formatted_ref;
|
||||
/// use minted? or listings?
|
||||
bool use_minted;
|
||||
//output line numbering
|
||||
|
@ -1626,6 +1626,8 @@ GuiDocument::GuiDocument(GuiView & lv)
|
||||
this, SLOT(change_adaptor()));
|
||||
connect(latexModule->refstyleCB, SIGNAL(clicked()),
|
||||
this, SLOT(change_adaptor()));
|
||||
connect(latexModule->refFormattedCB, SIGNAL(clicked()),
|
||||
this, SLOT(change_adaptor()));
|
||||
|
||||
latexModule->optionsLE->setValidator(new NoNewLineValidator(
|
||||
latexModule->optionsLE));
|
||||
@ -3563,6 +3565,7 @@ void GuiDocument::applyView()
|
||||
// date
|
||||
bp_.suppress_date = latexModule->suppressDateCB->isChecked();
|
||||
bp_.use_refstyle = latexModule->refstyleCB->isChecked();
|
||||
bp_.use_formatted_ref = latexModule->refFormattedCB->isChecked();
|
||||
|
||||
// biblio
|
||||
string const engine =
|
||||
@ -4067,6 +4070,7 @@ void GuiDocument::paramsToDialog()
|
||||
// date
|
||||
latexModule->suppressDateCB->setChecked(bp_.suppress_date);
|
||||
latexModule->refstyleCB->setChecked(bp_.use_refstyle);
|
||||
latexModule->refFormattedCB->setChecked(bp_.use_formatted_ref);
|
||||
|
||||
// biblio
|
||||
string const cite_engine = bp_.citeEngine();
|
||||
|
@ -6,7 +6,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>341</width>
|
||||
<width>332</width>
|
||||
<height>442</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -14,6 +14,72 @@
|
||||
<string/>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="psdriverL">
|
||||
<property name="text">
|
||||
<string>&Graphics driver:</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>psdriverCO</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QComboBox" name="psdriverCO">
|
||||
<property name="duplicatesEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="4">
|
||||
<widget class="QCheckBox" name="refstyleCB">
|
||||
<property name="text">
|
||||
<string>&Use refstyle (not prettyref) for cross-references</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>2</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="4">
|
||||
<widget class="QCheckBox" name="suppressDateCB">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Suppress default date on front page</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<spacer name="horizontalSpacer_1">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>261</width>
|
||||
<height>22</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="4">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
@ -23,12 +89,6 @@
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout">
|
||||
<property name="margin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="lyx::frontend::CategorizedCombo" name="classCO">
|
||||
<property name="maxVisibleItems">
|
||||
@ -55,6 +115,51 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="4">
|
||||
<widget class="QGroupBox" name="childDocGB">
|
||||
<property name="toolTip">
|
||||
<string>Select if the current document is included to a master file</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Select de&fault master document</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="childDocLA">
|
||||
<property name="text">
|
||||
<string>&Master:</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>childDocLE</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QPushButton" name="childDocPB">
|
||||
<property name="text">
|
||||
<string>&Browse...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="childDocLE">
|
||||
<property name="toolTip">
|
||||
<string>Enter the name of the default master document</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="4">
|
||||
<widget class="QGroupBox" name="optionsGB">
|
||||
<property name="title">
|
||||
@ -100,120 +205,10 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="psdriverL">
|
||||
<item row="6" column="0" colspan="4">
|
||||
<widget class="QCheckBox" name="refFormattedCB">
|
||||
<property name="text">
|
||||
<string>&Graphics driver:</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>psdriverCO</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QComboBox" name="psdriverCO">
|
||||
<property name="duplicatesEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<spacer name="horizontalSpacer_1">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>261</width>
|
||||
<height>22</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="4">
|
||||
<widget class="QGroupBox" name="childDocGB">
|
||||
<property name="toolTip">
|
||||
<string>Select if the current document is included to a master file</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Select de&fault master document</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout">
|
||||
<property name="margin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="childDocLA">
|
||||
<property name="text">
|
||||
<string>&Master:</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>childDocLE</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QPushButton" name="childDocPB">
|
||||
<property name="text">
|
||||
<string>&Browse...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="childDocLE">
|
||||
<property name="toolTip">
|
||||
<string>Enter the name of the default master document</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="4">
|
||||
<widget class="QCheckBox" name="suppressDateCB">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Suppress default date on front page</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>2</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="4">
|
||||
<widget class="QCheckBox" name="refstyleCB">
|
||||
<property name="text">
|
||||
<string>&Use refstyle (not prettyref) for cross-references</string>
|
||||
<string>Indicate cross-reference output in the work area</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -382,11 +382,11 @@ void InsetRef::docbook(XMLStream & xs, OutputParams const &) const
|
||||
}
|
||||
|
||||
|
||||
docstring InsetRef::xhtml(XMLStream & xs, OutputParams const & op) const
|
||||
docstring InsetRef::displayString(docstring const & ref, string const & cmd,
|
||||
string const & language) const
|
||||
|
||||
{
|
||||
docstring const & ref = getParam("reference");
|
||||
InsetLabel const * il = buffer().insetLabel(ref, true);
|
||||
string const & cmd = params().getCmdName();
|
||||
docstring display_string;
|
||||
|
||||
if (il && !il->counterValue().empty()) {
|
||||
@ -397,11 +397,11 @@ docstring InsetRef::xhtml(XMLStream & xs, OutputParams const & op) const
|
||||
else if (cmd == "vref")
|
||||
// normally, would be "ref on page #", but we have no pages
|
||||
display_string = value;
|
||||
else if (cmd == "pageref" || cmd == "vpageref")
|
||||
else if (cmd == "pageref" || cmd == "vpageref") {
|
||||
// normally would be "on page #", but we have no pages.
|
||||
display_string = translateIfPossible(from_ascii("elsewhere"),
|
||||
op.local_font->language()->lang());
|
||||
else if (cmd == "eqref")
|
||||
display_string =
|
||||
translateIfPossible(from_ascii("elsewhere"), language);
|
||||
} else if (cmd == "eqref")
|
||||
display_string = '(' + value + ')';
|
||||
else if (cmd == "formatted") {
|
||||
display_string = il->formattedCounter();
|
||||
@ -418,14 +418,21 @@ docstring InsetRef::xhtml(XMLStream & xs, OutputParams const & op) const
|
||||
// in that section. So this is not trivial.
|
||||
display_string = il->prettyCounter();
|
||||
} else
|
||||
display_string = ref;
|
||||
display_string = ref;
|
||||
return display_string;
|
||||
}
|
||||
|
||||
|
||||
docstring InsetRef::xhtml(XMLStream & xs, OutputParams const & op) const
|
||||
{
|
||||
docstring const & ref = getParam("reference");
|
||||
string const & cmd = params().getCmdName();
|
||||
// FIXME What we'd really like to do is to be able to output some
|
||||
// appropriate sort of text here. But to do that, we need to associate
|
||||
// some sort of counter with the label, and we don't have that yet.
|
||||
docstring const attr = "href=\"#" + xml::cleanAttr(ref) + '"';
|
||||
xs << xml::StartTag("a", to_utf8(attr));
|
||||
xs << display_string;
|
||||
xs << displayString(ref, cmd, op.local_font->language()->lang());;
|
||||
xs << xml::EndTag("a");
|
||||
return docstring();
|
||||
}
|
||||
@ -520,14 +527,21 @@ void InsetRef::updateBuffer(ParIterator const & it, UpdateType, bool const /*del
|
||||
label += getParam("name");
|
||||
}
|
||||
|
||||
bool const use_formatted_ref = buffer().params().use_formatted_ref;
|
||||
unsigned int const maxLabelChars = 24;
|
||||
if (label.size() > maxLabelChars) {
|
||||
// Show label in tooltip when formatted references are shown in the work
|
||||
// area or it is too long
|
||||
if (use_formatted_ref || label.size() > maxLabelChars) {
|
||||
tooltip_ = label;
|
||||
support::truncateWithEllipsis(label, maxLabelChars);
|
||||
} else
|
||||
tooltip_ = from_ascii("");
|
||||
|
||||
screen_label_ = label;
|
||||
if (use_formatted_ref && cmd != "pageref" && cmd != "vpageref"
|
||||
&& cmd != "vref" && cmd != "labelonly")
|
||||
screen_label_ = displayString(ref, cmd);
|
||||
else
|
||||
screen_label_ = label;
|
||||
broken_ = false;
|
||||
setBroken(broken_);
|
||||
}
|
||||
|
@ -117,6 +117,10 @@ private:
|
||||
docstring screenLabel() const override;
|
||||
//@}
|
||||
|
||||
///
|
||||
docstring displayString(docstring const & ref, std::string const & cmd,
|
||||
std::string const & language = std::string()) const;
|
||||
|
||||
/// \return the label with things that need to be escaped escaped
|
||||
docstring getEscapedLabel(OutputParams const &) const;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user