commit 45eb314a863a7bc76c2880f2352b7b430eeaf1c0 Author: Jean-Marc Lasgouttes <lasgout...@lyx.org> Date: Wed Jul 9 20:12:06 2014 +0200
Get rid of rtl_support preference This variable was introduced to guard against any bad consequence of the then-new right-to-left languages support. Let's be bold and get rid of it altogether! Now right to left support is always enabled. diff --git a/00README_STR_METRICS_BRANCH b/00README_STR_METRICS_BRANCH index 7095f9f..e901b51 100644 --- a/00README_STR_METRICS_BRANCH +++ b/00README_STR_METRICS_BRANCH @@ -50,7 +50,4 @@ What is done: * Remove homebrew Arabic and Hebrew support from Encoding.cpp. We now rely on Qt to do handle complex scripts. - -Next steps: - -* Maybe get rid of LyXRC::rtl_support, which does not have a real use case. +* Get rid of LyXRC::rtl_support, which does not have a real use case. diff --git a/lib/configure.py b/lib/configure.py index f0b7166..ac8df63 100644 --- a/lib/configure.py +++ b/lib/configure.py @@ -1479,7 +1479,7 @@ if __name__ == '__main__': lyx_check_config = True lyx_kpsewhich = True outfile = 'lyxrc.defaults' - lyxrc_fileformat = 16 + lyxrc_fileformat = 17 rc_entries = '' lyx_keep_temps = False version_suffix = '' diff --git a/lib/scripts/prefs2prefs_prefs.py b/lib/scripts/prefs2prefs_prefs.py index 4770fbf..9776cfe 100644 --- a/lib/scripts/prefs2prefs_prefs.py +++ b/lib/scripts/prefs2prefs_prefs.py @@ -70,6 +70,9 @@ # Incremented to format 16, by lasgouttes # Remove force_paint_single_char rc. +# Incremented to format 17, by lasgouttes +# Remove rtl_support rc. + # NOTE: The format should also be updated in LYXRC.cpp and # in configure.py. @@ -321,6 +324,11 @@ def remove_force_paint_single_char(line): return no_match return (True, "") +def remove_rtl(line): + if not line.lower().startswith("\\rtl "): + return no_match + return (True, "") + # End conversions for LyX 2.1 to 2.2 #################################### @@ -346,5 +354,6 @@ conversions = [ [ 13, [mac_cursor_movement]], [ 14, []], [ 15, []], - [ 16, [remove_force_paint_single_char]] + [ 16, [remove_force_paint_single_char]], + [ 17, [remove_rtl]] ] diff --git a/src/Bidi.cpp b/src/Bidi.cpp index d5a631e..3b598a4 100644 --- a/src/Bidi.cpp +++ b/src/Bidi.cpp @@ -57,10 +57,6 @@ void Bidi::computeTables(Paragraph const & par, Buffer const & buf, Row const & row) { same_direction_ = true; - if (!lyxrc.rtl_support) { - start_ = -1; - return; - } if (par.inInset().forceLTR()) { start_ = -1; @@ -192,7 +188,7 @@ void Bidi::computeTables(Paragraph const & par, bool Bidi::isBoundary(Buffer const & buf, Paragraph const & par, pos_type pos) const { - if (!lyxrc.rtl_support || pos == 0) + if (pos == 0) return false; if (!inRange(pos - 1)) { @@ -212,9 +208,6 @@ bool Bidi::isBoundary(Buffer const & buf, Paragraph const & par, bool Bidi::isBoundary(Buffer const & buf, Paragraph const & par, pos_type pos, Font const & font) const { - if (!lyxrc.rtl_support) - return false; // This is just for speedup - bool const rtl = font.isVisibleRightToLeft(); bool const rtl2 = inRange(pos) ? level(pos) % 2 diff --git a/src/BufferView.cpp b/src/BufferView.cpp index 301fd2a..bc8162b 100644 --- a/src/BufferView.cpp +++ b/src/BufferView.cpp @@ -803,14 +803,12 @@ bool BufferView::moveToPosition(pit_type bottom_pit, pos_type bottom_pos, void BufferView::translateAndInsert(char_type c, Text * t, Cursor & cur) { - if (lyxrc.rtl_support) { - if (d->cursor_.real_current_font.isRightToLeft()) { - if (d->intl_.keymap == Intl::PRIMARY) - d->intl_.keyMapSec(); - } else { - if (d->intl_.keymap == Intl::SECONDARY) - d->intl_.keyMapPrim(); - } + if (d->cursor_.real_current_font.isRightToLeft()) { + if (d->intl_.keymap == Intl::PRIMARY) + d->intl_.keyMapSec(); + } else { + if (d->intl_.keymap == Intl::SECONDARY) + d->intl_.keyMapPrim(); } d->intl_.getTransManager().translateAndInsert(c, t, cur); diff --git a/src/LyXRC.cpp b/src/LyXRC.cpp index 46309ee..5e1efcf 100644 --- a/src/LyXRC.cpp +++ b/src/LyXRC.cpp @@ -58,7 +58,7 @@ namespace { // The format should also be updated in configure.py, and conversion code // should be added to prefs2prefs_prefs.py. -static unsigned int const LYXRC_FILEFORMAT = 16; // lasgouttes: remove \\force_paint_single_char +static unsigned int const LYXRC_FILEFORMAT = 17; // lasgouttes: remove \\rtl // when adding something to this array keep it sorted! LexerKeyword lyxrcTags[] = { @@ -170,7 +170,6 @@ LexerKeyword lyxrcTags[] = { { "\\print_to_file", LyXRC::RC_PRINTTOFILE }, { "\\print_to_printer", LyXRC::RC_PRINTTOPRINTER }, { "\\printer", LyXRC::RC_PRINTER }, - { "\\rtl", LyXRC::RC_RTL_SUPPORT }, { "\\save_compressed", LyXRC::RC_SAVE_COMPRESSED }, { "\\screen_dpi", LyXRC::RC_SCREEN_DPI }, { "\\screen_font_roman", LyXRC::RC_SCREEN_FONT_ROMAN }, @@ -313,7 +312,6 @@ void LyXRC::setDefaults() completion_minlength = 6; spellcheck_notes = true; use_kbmap = false; - rtl_support = true; visual_cursor = false; auto_number = true; mark_foreign_language = true; @@ -1042,9 +1040,6 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) case RC_LANGUAGE_COMMAND_LOCAL: lexrc >> language_command_local; break; - case RC_RTL_SUPPORT: - lexrc >> rtl_support; - break; case RC_VISUAL_CURSOR: lexrc >> visual_cursor; break; @@ -2537,13 +2532,6 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c if (tag != RC_LAST) break; - case RC_RTL_SUPPORT: - if (ignore_system_lyxrc || - rtl_support != system_lyxrc.rtl_support) { - os << "\\rtl " << convert<string>(rtl_support) << '\n'; - } - if (tag != RC_LAST) - break; case RC_VISUAL_CURSOR: if (ignore_system_lyxrc || visual_cursor != system_lyxrc.visual_cursor) { @@ -3015,7 +3003,6 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new) case LyXRC::RC_PRINTTOPRINTER: case LyXRC::RC_PRINT_ADAPTOUTPUT: case LyXRC::RC_PRINT_COMMAND: - case LyXRC::RC_RTL_SUPPORT: case LyXRC::RC_SAVE_COMPRESSED: case LyXRC::RC_SCREEN_DPI: case LyXRC::RC_SCREEN_FONT_ROMAN: @@ -3423,10 +3410,6 @@ string const LyXRC::getDescription(LyXRCTags tag) str = _("Your favorite print program, e.g. \"dvips\", \"dvilj4\"."); break; - case RC_RTL_SUPPORT: - str = _("Select to enable support of right-to-left languages (e.g. Hebrew, Arabic)."); - break; - case RC_VISUAL_CURSOR: str = _("Select to have visual bidi cursor movement, unselect for logical movement."); break; diff --git a/src/LyXRC.h b/src/LyXRC.h index 9579288..d132668 100644 --- a/src/LyXRC.h +++ b/src/LyXRC.h @@ -146,7 +146,6 @@ public: RC_PRINTTOPRINTER, RC_PRINT_ADAPTOUTPUT, RC_PRINT_COMMAND, - RC_RTL_SUPPORT, RC_SAVE_COMPRESSED, RC_SCREEN_DPI, RC_SCREEN_FONT_ROMAN, @@ -410,8 +409,6 @@ public: }; /// LangPackageSelection language_package_selection; - /// - bool rtl_support; /// bidi cursor movement: true = visual, false = logical bool visual_cursor; /// diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp index 266c238..cd9118f 100644 --- a/src/Paragraph.cpp +++ b/src/Paragraph.cpp @@ -1928,7 +1928,7 @@ FontSize Paragraph::highestFontInRange char_type Paragraph::getUChar(BufferParams const & bparams, pos_type pos) const { char_type c = d->text_[pos]; - if (!lyxrc.rtl_support || !getFontSettings(bparams, pos).isRightToLeft()) + if (!getFontSettings(bparams, pos).isRightToLeft()) return c; // FIXME: The arabic special casing is due to the difference of arabic @@ -3304,8 +3304,7 @@ Paragraph::getParLanguage(BufferParams const & bparams) const bool Paragraph::isRTL(BufferParams const & bparams) const { - return lyxrc.rtl_support - && getParLanguage(bparams)->rightToLeft() + return getParLanguage(bparams)->rightToLeft() && !inInset().getLayout().forceLTR(); } diff --git a/src/TextMetrics.cpp b/src/TextMetrics.cpp index c168998..4dde5fd 100644 --- a/src/TextMetrics.cpp +++ b/src/TextMetrics.cpp @@ -290,7 +290,7 @@ Font TextMetrics::displayFont(pit_type pit, pos_type pos) const bool TextMetrics::isRTL(CursorSlice const & sl, bool boundary) const { - if (!lyxrc.rtl_support || !sl.text()) + if (!sl.text()) return false; int correction = 0; @@ -304,7 +304,7 @@ bool TextMetrics::isRTL(CursorSlice const & sl, bool boundary) const bool TextMetrics::isRTLBoundary(pit_type pit, pos_type pos) const { // no RTL boundary at paragraph start - if (!lyxrc.rtl_support || pos == 0) + if (pos == 0) return false; Font const & left_font = displayFont(pit, pos - 1); @@ -319,9 +319,8 @@ bool TextMetrics::isRTLBoundary(pit_type pit, pos_type pos) const bool TextMetrics::isRTLBoundary(pit_type pit, pos_type pos, Font const & font) const { - if (!lyxrc.rtl_support - // no RTL boundary at paragraph start - || pos == 0 + if (// no RTL boundary at paragraph start + pos == 0 // if the metrics have not been calculated, then we are not // on screen and can safely ignore issues about boundaries. || !contains(pit)) diff --git a/src/frontends/qt4/GuiPrefs.cpp b/src/frontends/qt4/GuiPrefs.cpp index 396cab3..89d4e1e 100644 --- a/src/frontends/qt4/GuiPrefs.cpp +++ b/src/frontends/qt4/GuiPrefs.cpp @@ -2261,8 +2261,6 @@ PrefLanguage::PrefLanguage(GuiPreferences * form) { setupUi(this); - connect(rtlGB, SIGNAL(clicked()), - this, SIGNAL(changed())); connect(visualCursorRB, SIGNAL(clicked()), this, SIGNAL(changed())); connect(logicalCursorRB, SIGNAL(clicked()), @@ -2346,9 +2344,7 @@ void PrefLanguage::on_languagePackageCO_currentIndexChanged(int i) void PrefLanguage::apply(LyXRC & rc) const { - // FIXME: remove rtl_support bool - rc.rtl_support = rtlGB->isChecked(); - rc.visual_cursor = rtlGB->isChecked() && visualCursorRB->isChecked(); + rc.visual_cursor = visualCursorRB->isChecked(); rc.mark_foreign_language = markForeignCB->isChecked(); rc.language_auto_begin = autoBeginCB->isChecked(); rc.language_auto_end = autoEndCB->isChecked(); @@ -2374,8 +2370,6 @@ void PrefLanguage::apply(LyXRC & rc) const void PrefLanguage::update(LyXRC const & rc) { - // FIXME: remove rtl_support bool - rtlGB->setChecked(rc.rtl_support); if (rc.visual_cursor) visualCursorRB->setChecked(true); else diff --git a/src/frontends/qt4/ui/PrefLanguageUi.ui b/src/frontends/qt4/ui/PrefLanguageUi.ui index c91961b..2684ee0 100644 --- a/src/frontends/qt4/ui/PrefLanguageUi.ui +++ b/src/frontends/qt4/ui/PrefLanguageUi.ui @@ -224,16 +224,6 @@ </property> <layout class="QGridLayout" name="gridLayout"> <item row="0" column="0"> - <widget class="QCheckBox" name="rtlGB"> - <property name="toolTip"> - <string>Select to enable support of right-to-left languages (e.g. Hebrew, Arabic).</string> - </property> - <property name="text"> - <string>Enable &RTL support</string> - </property> - </widget> - </item> - <item row="1" column="0"> <layout class="QHBoxLayout"> <property name="spacing"> <number>6</number>