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 &amp;RTL support</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
        <layout class="QHBoxLayout">
         <property name="spacing">
          <number>6</number>

Reply via email to