commit 57dc817581faf54babaf3db0c602bac205dc6855 Author: Juergen Spitzmueller <sp...@lyx.org> Date: Sun May 6 19:48:21 2018 +0200
Add \nospellcheck font property This revives a ten year old idea (and patch) by Dov. You can now mark in the character dialog text and exclude it from spell checking. Fixes: #1042 File format change Remaining issue: The instant spell checking marks are not immediately removed, but only after some editing. --- development/FORMAT | 4 + lib/lyx2lyx/lyx_2_4.py | 15 ++- src/Font.cpp | 11 +- src/FontInfo.cpp | 21 +++- src/FontInfo.h | 12 +- src/Paragraph.cpp | 3 + src/RowPainter.cpp | 34 ++++- src/RowPainter.h | 2 + src/Text.cpp | 3 + src/Text2.cpp | 2 + src/frontends/qt4/GuiCharacter.cpp | 18 +++ src/frontends/qt4/GuiCharacter.h | 3 + src/frontends/qt4/ui/CharacterUi.ui | 274 ++++++++++++++++++----------------- src/version.h | 4 +- 14 files changed, 257 insertions(+), 149 deletions(-) diff --git a/development/FORMAT b/development/FORMAT index ce0bd80..8338ee1 100644 --- a/development/FORMAT +++ b/development/FORMAT @@ -7,6 +7,10 @@ changes happened in particular if possible. A good example would be ----------------------- +2018-05-06 Jürgen Spitzmüller <sp...@lyx.org> + * format incremented to 551: add font info param \nospellcheck that prevents + text from being spellchecked. + 2018-04-22 Jürgen Spitzmüller <sp...@lyx.org> * format incremented to 550: rename \fontencoding global to \fontencoding auto. Semantic change: this is now automatically set depending on the document fonts. diff --git a/lib/lyx2lyx/lyx_2_4.py b/lib/lyx2lyx/lyx_2_4.py index ac84d6a..941703a 100644 --- a/lib/lyx2lyx/lyx_2_4.py +++ b/lib/lyx2lyx/lyx_2_4.py @@ -202,6 +202,17 @@ def revert_fontenc(document): document.header[i] = document.header[i].replace("auto", "global") +def revert_nospellcheck(document): + " Remove nospellcheck font info param " + + i = 0 + while True: + i = find_token(document.body, '\\nospellcheck', i) + if i == -1: + return + del document.body[i] + + ## # Conversion hub # @@ -213,10 +224,12 @@ convert = [ [547, []], [548, []], [549, []], - [550, [convert_fontenc]] + [550, [convert_fontenc]], + [551, []] ] revert = [ + [549, [revert_nospellcheck]], [549, [revert_fontenc]], [548, []],# dummy format change [547, [revert_lscape]], diff --git a/src/Font.cpp b/src/Font.cpp index b810e45..b8a6a29 100644 --- a/src/Font.cpp +++ b/src/Font.cpp @@ -225,6 +225,8 @@ void Font::lyxWriteChanges(Font const & orgfont, os << "\\emph " << LyXMiscNames[bits_.emph()] << "\n"; if (orgfont.fontInfo().number() != bits_.number()) os << "\\numeric " << LyXMiscNames[bits_.number()] << "\n"; + if (orgfont.fontInfo().nospellcheck() != bits_.nospellcheck()) + os << "\\nospellcheck " << LyXMiscNames[bits_.nospellcheck()] << "\n"; if (orgfont.fontInfo().underbar() != bits_.underbar()) { // This is only for backwards compatibility switch (bits_.underbar()) { @@ -619,6 +621,7 @@ string Font::toString(bool const toggle) const << "uwave " << bits_.uwave() << '\n' << "noun " << bits_.noun() << '\n' << "number " << bits_.number() << '\n' + << "nospellcheck " << bits_.nospellcheck() << '\n' << "color " << bits_.color() << '\n' << "language " << lang << '\n' << "toggleall " << convert<string>(toggle); @@ -660,7 +663,8 @@ bool Font::fromString(string const & data, bool & toggle) } else if (token == "emph" || token == "underbar" || token == "noun" || token == "number" || token == "uuline" || token == "uwave" - || token == "strikeout" || token == "xout") { + || token == "strikeout" || token == "xout" + || token == "nospellcheck") { int const next = lex.getInteger(); FontState const misc = FontState(next); @@ -681,6 +685,8 @@ bool Font::fromString(string const & data, bool & toggle) bits_.setNoun(misc); else if (token == "number") bits_.setNumber(misc); + else if (token == "nospellcheck") + bits_.setNoSpellcheck(misc); } else if (token == "color") { int const next = lex.getInteger(); @@ -809,7 +815,8 @@ ostream & operator<<(ostream & os, FontInfo const & f) << " uuline " << f.uuline() << " uwave " << f.uwave() << " noun " << f.noun() - << " number " << f.number(); + << " number " << f.number() + << " nospellcheck " << f.nospellcheck(); } diff --git a/src/FontInfo.cpp b/src/FontInfo.cpp index 2aaab38..1d69d2b 100644 --- a/src/FontInfo.cpp +++ b/src/FontInfo.cpp @@ -71,6 +71,7 @@ FontInfo const sane_font( FONT_OFF, FONT_OFF, FONT_OFF, + FONT_OFF, FONT_OFF); FontInfo const inherit_font( @@ -87,7 +88,8 @@ FontInfo const inherit_font( FONT_INHERIT, FONT_INHERIT, FONT_INHERIT, - FONT_OFF); + FONT_OFF, + FONT_INHERIT); FontInfo const ignore_font( IGNORE_FAMILY, @@ -103,6 +105,7 @@ FontInfo const ignore_font( FONT_IGNORE, FONT_IGNORE, FONT_IGNORE, + FONT_IGNORE, FONT_IGNORE); @@ -226,6 +229,8 @@ void FontInfo::reduce(FontInfo const & tmplt) color_ = Color_inherit; if (background_ == tmplt.background_) background_ = Color_inherit; + if (nospellcheck_ == tmplt.nospellcheck_) + noun_ = FONT_INHERIT; } @@ -276,6 +281,9 @@ FontInfo & FontInfo::realize(FontInfo const & tmplt) if (background_ == Color_inherit) background_ = tmplt.background_; + if (nospellcheck_ == FONT_INHERIT) + nospellcheck_ = tmplt.nospellcheck_; + return *this; } @@ -375,6 +383,7 @@ void FontInfo::update(FontInfo const & newfont, bool toggleall) setUwave(setMisc(newfont.uwave_, uwave_)); setNoun(setMisc(newfont.noun_, noun_)); setNumber(setMisc(newfont.number_, number_)); + setNoSpellcheck(setMisc(newfont.nospellcheck_, nospellcheck_)); if (newfont.color_ == color_ && toggleall) setColor(Color_inherit); // toggle 'back' @@ -396,7 +405,7 @@ bool FontInfo::resolved() const && uuline_ != FONT_INHERIT && uwave_ != FONT_INHERIT && strikeout_ != FONT_INHERIT && xout_ != FONT_INHERIT && noun_ != FONT_INHERIT && color_ != Color_inherit - && background_ != Color_inherit); + && background_ != Color_inherit && nospellcheck_ != FONT_INHERIT); } @@ -689,6 +698,10 @@ FontInfo lyxRead(Lexer & lex, FontInfo const & fi) f.setUwave(FONT_ON); } else if (ttok == "noun") { f.setNoun(FONT_ON); + } else if (ttok == "nospellcheck") { + f.setNoSpellcheck(FONT_ON); + } else if (ttok == "no_nospellcheck") { + f.setNoSpellcheck(FONT_OFF); } else { lex.printError("Illegal misc type"); } @@ -751,6 +764,10 @@ void lyxWrite(ostream & os, FontInfo const & f, string const & start, int level) oss << indent << "\tMisc Noun\n"; else if (f.noun() == FONT_OFF) oss << indent << "\tMisc No_Noun\n"; + if (f.nospellcheck() == FONT_ON) + oss << indent << "\tMisc NoSpellcheck\n"; + else if (f.nospellcheck() == FONT_OFF) + oss << indent << "\tMisc No_NoSpellcheck\n"; if (f.color() != Color_inherit && f.color() != Color_none) oss << indent << "\tColor " << lcolor.getLyXName(f.color()) << '\n'; diff --git a/src/FontInfo.h b/src/FontInfo.h index 9f38000..696e64d 100644 --- a/src/FontInfo.h +++ b/src/FontInfo.h @@ -48,11 +48,12 @@ public: FontState uuline, FontState uwave, FontState noun, - FontState number) + FontState number, + FontState nospellcheck) : family_(family), series_(series), shape_(shape), size_(size), style_(LM_ST_TEXT), color_(color), background_(background), emph_(emph), underbar_(underbar), strikeout_(strikeout), xout_(xout), uuline_(uuline), - uwave_(uwave), noun_(noun), number_(number) + uwave_(uwave), noun_(noun), number_(number), nospellcheck_(nospellcheck) {} /// Decreases font size by one @@ -92,6 +93,8 @@ public: void setColor(ColorCode c) { color_ = c; } ColorCode background() const { return background_; } void setBackground(ColorCode b) { background_ = b; } + FontState nospellcheck() const { return nospellcheck_; } + void setNoSpellcheck(FontState n) { nospellcheck_ = n; } //@} /// @@ -192,6 +195,8 @@ private: FontState noun_; /// FontState number_; + /// + FontState nospellcheck_; }; @@ -210,7 +215,8 @@ inline bool operator==(FontInfo const & lhs, FontInfo const & rhs) && lhs.uuline_ == rhs.uuline_ && lhs.uwave_ == rhs.uwave_ && lhs.noun_ == rhs.noun_ - && lhs.number_ == rhs.number_; + && lhs.number_ == rhs.number_ + && lhs.nospellcheck_ == rhs.nospellcheck_; } diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp index 7aa0d1f..2b07456 100644 --- a/src/Paragraph.cpp +++ b/src/Paragraph.cpp @@ -4231,6 +4231,9 @@ SpellChecker::Result Paragraph::spellCheck(pos_type & from, pos_type & to, docstring word = asString(from, to, AS_STR_INSETS | AS_STR_SKIPDELETE); Language * lang = d->getSpellLanguage(from); + if (getFontSettings(d->inset_owner_->buffer().params(), from).fontInfo().nospellcheck() == FONT_ON) + return result; + wl = WordLangTuple(word, lang); if (word.empty()) diff --git a/src/RowPainter.cpp b/src/RowPainter.cpp index f093805..3263613 100644 --- a/src/RowPainter.cpp +++ b/src/RowPainter.cpp @@ -139,6 +139,13 @@ void RowPainter::paintInset(Row::Element const & e) const } +void RowPainter::paintLanguageMarkings(Row::Element const & e) const +{ + paintForeignMark(e); + paintNoSpellingMark(e); +} + + void RowPainter::paintForeignMark(Row::Element const & e) const { Language const * lang = e.font.language(); @@ -157,6 +164,23 @@ void RowPainter::paintForeignMark(Row::Element const & e) const } +void RowPainter::paintNoSpellingMark(Row::Element const & e) const +{ + //if (!lyxrc.mark_no_spelling) + // return; + if (e.font.language() == latex_language) + return; + if (!e.font.fontInfo().nospellcheck()) + return; + + int const desc = e.inset ? e.dim.descent() : 0; + int const y = yo_ + pi_.base.solidLineOffset() + + desc + pi_.base.solidLineThickness() / 2; + pi_.pain.line(int(x_), y, int(x_ + e.full_width()), y, Color_language, + Painter::line_onoffdash, pi_.base.solidLineThickness()); +} + + void RowPainter::paintMisspelledMark(Row::Element const & e) const { // if changed the misspelled marker gets placed slightly lower than normal @@ -541,8 +565,9 @@ void RowPainter::paintOnlyInsets() Row::Element const & e = *cit; if (e.type == Row::INSET) { paintInset(e); - // The line that indicates word in a different language - paintForeignMark(e); + // The markings of foreign languages + // and of text ignored for spellchecking + paintLanguageMarkings(e); // change tracking (not for insets that handle it themselves) if (!e.inset->canPaintChange(*pi_.base.bv)) paintChange(e); @@ -578,8 +603,9 @@ void RowPainter::paintText() pi_.pain.textDecoration(e.font.fontInfo(), int(x_), yo_, int(e.full_width())); } - // The line that indicates word in a different language - paintForeignMark(e); + // The markings of foreign languages + // and of text ignored for spellchecking + paintLanguageMarkings(e); // change tracking (not for insets that handle it themselves) if (e.type != Row::INSET || ! e.inset->canPaintChange(*pi_.base.bv)) diff --git a/src/RowPainter.h b/src/RowPainter.h index 20febee..18b4c85 100644 --- a/src/RowPainter.h +++ b/src/RowPainter.h @@ -57,7 +57,9 @@ public: void paintSelection() const; private: + void paintLanguageMarkings(Row::Element const & e) const; void paintForeignMark(Row::Element const & e) const; + void paintNoSpellingMark(Row::Element const & e) const; void paintStringAndSel(Row::Element const & e) const; void paintMisspelledMark(Row::Element const & e) const; void paintChange(Row::Element const & e) const; diff --git a/src/Text.cpp b/src/Text.cpp index 301cd5f..876c5d0 100644 --- a/src/Text.cpp +++ b/src/Text.cpp @@ -445,6 +445,9 @@ void Text::readParToken(Paragraph & par, Lexer & lex, } else if (token == "\\numeric") { lex.next(); font.fontInfo().setNumber(setLyXMisc(lex.getString())); + } else if (token == "\\nospellcheck") { + lex.next(); + font.fontInfo().setNoSpellcheck(setLyXMisc(lex.getString())); } else if (token == "\\emph") { lex.next(); font.fontInfo().setEmph(setLyXMisc(lex.getString())); diff --git a/src/Text2.cpp b/src/Text2.cpp index bbd30a7..869684e 100644 --- a/src/Text2.cpp +++ b/src/Text2.cpp @@ -347,6 +347,8 @@ void Text::setFont(Cursor & cur, Font const & font, bool toggleall) newfi.setNoun(oldfi.noun() == FONT_OFF ? FONT_ON : FONT_OFF); if (newfi.number() == FONT_TOGGLE) newfi.setNumber(oldfi.number() == FONT_OFF ? FONT_ON : FONT_OFF); + if (newfi.nospellcheck() == FONT_TOGGLE) + newfi.setNoSpellcheck(oldfi.nospellcheck() == FONT_OFF ? FONT_ON : FONT_OFF); } setFont(cur.bv(), cur.selectionBegin().top(), diff --git a/src/frontends/qt4/GuiCharacter.cpp b/src/frontends/qt4/GuiCharacter.cpp index 777ca1c..f82bd8a 100644 --- a/src/frontends/qt4/GuiCharacter.cpp +++ b/src/frontends/qt4/GuiCharacter.cpp @@ -261,6 +261,7 @@ GuiCharacter::GuiCharacter(GuiView & lv) bc().addReadOnly(strikeCO); bc().addReadOnly(nounCB); bc().addReadOnly(emphCB); + bc().addReadOnly(nospellcheckCB); bc().addReadOnly(langCO); bc().addReadOnly(colorCO); bc().addReadOnly(autoapplyCB); @@ -296,6 +297,18 @@ void GuiCharacter::on_nounCB_clicked() } +void GuiCharacter::on_nospellcheckCB_clicked() +{ + // skip intermediate state at user click + if (!nospellcheck_) { + nospellcheckCB->setCheckState(Qt::Checked); + nospellcheck_ = true; + } + change_adaptor(); +} + + + void GuiCharacter::change_adaptor() { changed(); @@ -418,6 +431,8 @@ void GuiCharacter::updateContents() font.fontInfo().setEmph(FONT_IGNORE); if (fi.noun() != tmp.fontInfo().noun()) font.fontInfo().setNoun(FONT_IGNORE); + if (fi.nospellcheck() != tmp.fontInfo().nospellcheck()) + font.fontInfo().setNoSpellcheck(FONT_IGNORE); if (fi.color() != tmp.fontInfo().color()) font.fontInfo().setColor(Color_ignore); if (fi.underbar() != tmp.fontInfo().underbar() @@ -519,8 +534,10 @@ void GuiCharacter::paramsToDialog(Font const & font) colorCO->setCurrentIndex(colorCO->findData(toqstr(lcolor.getLyXName(fi.color())))); emphCB->setCheckState(getMarkupState(fi.emph())); nounCB->setCheckState(getMarkupState(fi.noun())); + nospellcheckCB->setCheckState(getMarkupState(fi.nospellcheck())); emph_ = emphCB->checkState() == Qt::Checked; noun_ = nounCB->checkState() == Qt::Checked; + nospellcheck_ = nospellcheckCB->checkState() == Qt::Checked; // reset_language is a null pointer. QString const lang = (font.language() == reset_language) @@ -538,6 +555,7 @@ void GuiCharacter::applyView() fi.setSize(size[sizeCO->currentIndex()].second); fi.setEmph(setMarkupState(emphCB->checkState())); fi.setNoun(setMarkupState(nounCB->checkState())); + fi.setNoSpellcheck(setMarkupState(nospellcheckCB->checkState())); setBar(fi, bar[ulineCO->currentIndex()].second); setStrike(fi, strike[strikeCO->currentIndex()].second); fi.setColor(lcolor.getFromLyXName(fromqstr(colorCO->itemData(colorCO->currentIndex()).toString()))); diff --git a/src/frontends/qt4/GuiCharacter.h b/src/frontends/qt4/GuiCharacter.h index e9148e7..d26ca47 100644 --- a/src/frontends/qt4/GuiCharacter.h +++ b/src/frontends/qt4/GuiCharacter.h @@ -65,6 +65,7 @@ protected Q_SLOTS: void change_adaptor(); void on_emphCB_clicked(); void on_nounCB_clicked(); + void on_nospellcheckCB_clicked(); private: /// \name Dialog inherited methods @@ -102,6 +103,8 @@ private: bool emph_; /// bool noun_; + /// + bool nospellcheck_; }; } // namespace frontend diff --git a/src/frontends/qt4/ui/CharacterUi.ui b/src/frontends/qt4/ui/CharacterUi.ui index 80db751..ca07dd0 100644 --- a/src/frontends/qt4/ui/CharacterUi.ui +++ b/src/frontends/qt4/ui/CharacterUi.ui @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>523</width> - <height>365</height> + <height>412</height> </rect> </property> <property name="windowTitle"> @@ -16,8 +16,86 @@ <property name="sizeGripEnabled"> <bool>true</bool> </property> - <layout class="QGridLayout" name="gridLayout_6"> - <item row="0" column="0"> + <layout class="QGridLayout" name="gridLayout_7"> + <item row="2" column="0" colspan="2"> + <layout class="QHBoxLayout"> + <property name="spacing"> + <number>6</number> + </property> + <property name="leftMargin"> + <number>0</number> + </property> + <property name="topMargin"> + <number>0</number> + </property> + <property name="rightMargin"> + <number>0</number> + </property> + <property name="bottomMargin"> + <number>0</number> + </property> + <item> + <widget class="QCheckBox" name="autoapplyCB"> + <property name="toolTip"> + <string>Apply each change automatically</string> + </property> + <property name="text"> + <string>Apply changes &immediately</string> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="okPB"> + <property name="text"> + <string>&OK</string> + </property> + <property name="default"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="applyPB"> + <property name="text"> + <string>&Apply</string> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="closePB"> + <property name="text"> + <string>Close</string> + </property> + <property name="autoDefault"> + <bool>false</bool> + </property> + <property name="default"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="0" colspan="2"> <layout class="QHBoxLayout" name="horizontalLayout_2"> <item> <widget class="QGroupBox" name="groupBox"> @@ -243,14 +321,24 @@ </layout> </item> <item row="1" column="0"> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> - <widget class="QGroupBox" name="groupBox_4"> - <property name="title"> - <string>&Language</string> - </property> - <layout class="QGridLayout" name="gridLayout_7"> - <item row="0" column="0"> + <widget class="QGroupBox" name="groupBox_4"> + <property name="title"> + <string>Language Settings</string> + </property> + <layout class="QGridLayout" name="gridLayout_6"> + <item row="0" column="0"> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QLabel" name="LanguageLA"> + <property name="text"> + <string>&Language:</string> + </property> + <property name="buddy"> + <cstring>langCO</cstring> + </property> + </widget> + </item> + <item> <widget class="QComboBox" name="langCO"> <property name="sizePolicy"> <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> @@ -264,132 +352,48 @@ </widget> </item> </layout> - </widget> - </item> - <item> - <widget class="QGroupBox" name="groupBox_3"> - <property name="title"> - <string>Semantic Markup</string> - </property> - <layout class="QGridLayout" name="gridLayout_5"> - <item row="0" column="0"> - <widget class="QCheckBox" name="emphCB"> - <property name="toolTip"> - <string>Semantic emphasizing (italic by default, but can be adapted)</string> - </property> - <property name="text"> - <string>&Emphasized</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QCheckBox" name="nounCB"> - <property name="toolTip"> - <string>Semantic markup of nouns (small caps by default, but can be adapted)</string> - </property> - <property name="text"> - <string>&Noun</string> - </property> - </widget> - </item> - </layout> - </widget> - </item> - </layout> - </item> - <item row="2" column="0"> - <spacer> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Expanding</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - </spacer> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="nospellcheckCB"> + <property name="toolTip"> + <string>If this is selected, the marked text will not be spellchecked</string> + </property> + <property name="text"> + <string>E&xclude from Spellchecking</string> + </property> + </widget> + </item> + </layout> + </widget> </item> - <item row="3" column="0"> - <layout class="QHBoxLayout"> - <property name="spacing"> - <number>6</number> + <item row="1" column="1"> + <widget class="QGroupBox" name="groupBox_3"> + <property name="title"> + <string>Semantic Markup</string> </property> - <property name="leftMargin"> - <number>0</number> - </property> - <property name="topMargin"> - <number>0</number> - </property> - <property name="rightMargin"> - <number>0</number> - </property> - <property name="bottomMargin"> - <number>0</number> - </property> - <item> - <widget class="QCheckBox" name="autoapplyCB"> - <property name="toolTip"> - <string>Apply each change automatically</string> - </property> - <property name="text"> - <string>Apply changes &immediately</string> - </property> - </widget> - </item> - <item> - <spacer> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Expanding</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QPushButton" name="okPB"> - <property name="text"> - <string>&OK</string> - </property> - <property name="default"> - <bool>true</bool> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="applyPB"> - <property name="text"> - <string>&Apply</string> - </property> - <property name="autoDefault"> - <bool>false</bool> - </property> - </widget> - </item> - <item> - <widget class="QPushButton" name="closePB"> - <property name="text"> - <string>Close</string> - </property> - <property name="autoDefault"> - <bool>false</bool> - </property> - <property name="default"> - <bool>false</bool> - </property> - </widget> - </item> - </layout> + <layout class="QGridLayout" name="gridLayout_5"> + <item row="0" column="0"> + <widget class="QCheckBox" name="emphCB"> + <property name="toolTip"> + <string>Semantic emphasizing (italic by default, but can be adapted)</string> + </property> + <property name="text"> + <string>&Emphasized</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QCheckBox" name="nounCB"> + <property name="toolTip"> + <string>Semantic markup of nouns (small caps by default, but can be adapted)</string> + </property> + <property name="text"> + <string>&Noun</string> + </property> + </widget> + </item> + </layout> + </widget> </item> </layout> </widget> diff --git a/src/version.h b/src/version.h index e415ec9..ede6c33 100644 --- a/src/version.h +++ b/src/version.h @@ -32,8 +32,8 @@ extern char const * const lyx_version_info; // Do not remove the comment below, so we get merge conflict in // independent branches. Instead add your own. -#define LYX_FORMAT_LYX 550 // spitz: \fontenc auto -#define LYX_FORMAT_TEX2LYX 550 +#define LYX_FORMAT_LYX 551 // spitz: \nospellcheck font param +#define LYX_FORMAT_TEX2LYX 551 #if LYX_FORMAT_TEX2LYX != LYX_FORMAT_LYX #ifndef _MSC_VER