Patch from Daniel Ramoeller <d.lyx@web.de>, fixed up by RKH.
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
#
[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]],
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, /**/);
shell_escape = false;
output_sync = false;
use_refstyle = true;
+ use_formatted_ref = false;
use_minted = false;
use_lineno = false;
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") {
<< "\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';
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
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));
// date
bp_.suppress_date = latexModule->suppressDateCB->isChecked();
bp_.use_refstyle = latexModule->refstyleCB->isChecked();
+ bp_.use_formatted_ref = latexModule->refFormattedCB->isChecked();
// biblio
string const engine =
// 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();
<rect>
<x>0</x>
<y>0</y>
- <width>341</width>
+ <width>332</width>
<height>442</height>
</rect>
</property>
<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">
<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">
</layout>
</widget>
</item>
- <item row="1" column="0" colspan="4">
- <widget class="QGroupBox" name="optionsGB">
- <property name="title">
- <string>Class Options</string>
- </property>
- <property name="flat">
- <bool>true</bool>
- </property>
- <layout class="QGridLayout" name="gridLayout_1">
- <item row="0" column="0">
- <widget class="QCheckBox" name="defaultOptionsCB">
- <property name="toolTip">
- <string>Enable to use the options that are predefined in the layout file</string>
- </property>
- <property name="text">
- <string>&Predefined:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QLineEdit" name="defaultOptionsLE">
- <property name="toolTip">
- <string>The options that are predefined in the layout file. Click to the left to select/deselect.</string>
- </property>
- <property name="readOnly">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="optionsL">
- <property name="text">
- <string>Cus&tom:</string>
- </property>
- <property name="buddy">
- <cstring>optionsLE</cstring>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QLineEdit" name="optionsLE"/>
- </item>
- </layout>
- </widget>
- </item>
- <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="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">
<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">
</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>
+ <item row="1" column="0" colspan="4">
+ <widget class="QGroupBox" name="optionsGB">
+ <property name="title">
+ <string>Class Options</string>
</property>
- <property name="text">
- <string>&Suppress default date on front page</string>
+ <property name="flat">
+ <bool>true</bool>
</property>
+ <layout class="QGridLayout" name="gridLayout_1">
+ <item row="0" column="0">
+ <widget class="QCheckBox" name="defaultOptionsCB">
+ <property name="toolTip">
+ <string>Enable to use the options that are predefined in the layout file</string>
+ </property>
+ <property name="text">
+ <string>&Predefined:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="defaultOptionsLE">
+ <property name="toolTip">
+ <string>The options that are predefined in the layout file. Click to the left to select/deselect.</string>
+ </property>
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="optionsL">
+ <property name="text">
+ <string>Cus&tom:</string>
+ </property>
+ <property name="buddy">
+ <cstring>optionsLE</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="optionsLE"/>
+ </item>
+ </layout>
</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">
+ <item row="6" column="0" colspan="4">
+ <widget class="QCheckBox" name="refFormattedCB">
<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>
}
-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()) {
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();
// 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();
}
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_);
}
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;