Author: vfr
Date: Thu Oct 27 13:52:11 2011
New Revision: 40030
URL: http://www.lyx.org/trac/changeset/40030

Log:
Add a preference option to specify the default length unit (cm or in).

Modified:
   lyx-devel/trunk/lib/scripts/prefs2prefs_prefs.py
   lyx-devel/trunk/src/Length.cpp
   lyx-devel/trunk/src/LyXRC.cpp
   lyx-devel/trunk/src/LyXRC.h
   lyx-devel/trunk/src/frontends/qt4/GuiPrefs.cpp
   lyx-devel/trunk/src/frontends/qt4/ui/PrefLanguageUi.ui

Modified: lyx-devel/trunk/lib/scripts/prefs2prefs_prefs.py
==============================================================================
--- lyx-devel/trunk/lib/scripts/prefs2prefs_prefs.py    Thu Oct 27 13:49:15 
2011        (r40029)
+++ lyx-devel/trunk/lib/scripts/prefs2prefs_prefs.py    Thu Oct 27 13:52:11 
2011        (r40030)
@@ -28,6 +28,11 @@
 # Incremented to format 4, r40028 by vfr
 #   Remove support for default paper size.
 
+# Incremented to format 5, r40030 by vfr
+#   Add a default length unit.
+#   No conversion necessary.
+
+
 import re
 
 
@@ -141,4 +146,5 @@
        [  2, []],
        [  3, [ zipped_native ]],
        [  4, [ remove_default_papersize ]],
+       [  5, []],
 ]

Modified: lyx-devel/trunk/src/Length.cpp
==============================================================================
--- lyx-devel/trunk/src/Length.cpp      Thu Oct 27 13:49:15 2011        (r40029)
+++ lyx-devel/trunk/src/Length.cpp      Thu Oct 27 13:52:11 2011        (r40030)
@@ -320,8 +320,7 @@
 
 Length::UNIT Length::defaultUnit()
 {
-       // FIXME: use a preference
-       return Length::CM;
+       return lyxrc.default_length_unit;
 }
 
 

Modified: lyx-devel/trunk/src/LyXRC.cpp
==============================================================================
--- lyx-devel/trunk/src/LyXRC.cpp       Thu Oct 27 13:49:15 2011        (r40029)
+++ lyx-devel/trunk/src/LyXRC.cpp       Thu Oct 27 13:52:11 2011        (r40030)
@@ -55,7 +55,7 @@
 
 namespace {
 
-static unsigned int const LYXRC_FILEFORMAT = 4; // vfr: remove default paper 
size
+static unsigned int const LYXRC_FILEFORMAT = 5; // vfr: add default length unit
 
 // when adding something to this array keep it sorted!
 LexerKeyword lyxrcTags[] = {
@@ -91,6 +91,7 @@
        { "\\def_file", LyXRC::RC_DEFFILE },
        { "\\default_decimal_point", LyXRC::RC_DEFAULT_DECIMAL_POINT },
        { "\\default_language", LyXRC::RC_DEFAULT_LANGUAGE },
+       { "\\default_length_unit", LyXRC::RC_DEFAULT_LENGTH_UNIT },
        { "\\default_view_format", LyXRC::RC_DEFAULT_VIEW_FORMAT },
        { "\\dialogs_iconify_with_main", LyXRC::RC_DIALOGS_ICONIFY_WITH_MAIN },
        { "\\display_graphics", LyXRC::RC_DISPLAY_GRAPHICS },
@@ -365,6 +366,7 @@
        completion_inline_dots = -1;
        completion_inline_delay = 0.2;
        default_decimal_point = ".";
+       default_length_unit = Length::CM;
        cursor_width = 1;
 }
 
@@ -979,6 +981,10 @@
                case RC_DEFAULT_DECIMAL_POINT:
                        lexrc >> default_decimal_point;
                        break;
+               case RC_DEFAULT_LENGTH_UNIT:
+                       if (lexrc.next())
+                               default_length_unit = (Length::UNIT) 
lexrc.getInteger();
+                       break;
                case RC_DATE_INSERT_FORMAT:
                        lexrc >> date_insert_format;
                        break;
@@ -2448,6 +2454,14 @@
                if (tag != RC_LAST)
                        break;
 
+       case RC_DEFAULT_LENGTH_UNIT:
+               if (ignore_system_lyxrc ||
+                   default_length_unit != system_lyxrc.default_length_unit) {
+                       os << "\\default_length_unit " << 
int(default_length_unit) << '\n';
+               }
+               if (tag != RC_LAST)
+                       break;
+
        case RC_SPELLCHECKER:
                if (ignore_system_lyxrc ||
                    spellchecker != system_lyxrc.spellchecker) {
@@ -2996,6 +3010,7 @@
        case LyXRC::RC_FORWARD_SEARCH_PDF:
        case LyXRC::RC_EXPORT_OVERWRITE:
        case LyXRC::RC_DEFAULT_DECIMAL_POINT:
+       case LyXRC::RC_DEFAULT_LENGTH_UNIT:
        case LyXRC::RC_SCROLL_WHEEL_ZOOM:
        case LyXRC::RC_CURSOR_WIDTH:
                break;

Modified: lyx-devel/trunk/src/LyXRC.h
==============================================================================
--- lyx-devel/trunk/src/LyXRC.h Thu Oct 27 13:49:15 2011        (r40029)
+++ lyx-devel/trunk/src/LyXRC.h Thu Oct 27 13:52:11 2011        (r40030)
@@ -19,6 +19,7 @@
 #define LYXRC_H
 
 #include "paper.h"
+#include "Length.h"
 
 #include "support/strfwd.h"
 
@@ -68,6 +69,7 @@
                RC_CURSOR_WIDTH,
                RC_DATE_INSERT_FORMAT,
                RC_DEFAULT_DECIMAL_POINT,
+               RC_DEFAULT_LENGTH_UNIT,
                RC_DEFAULT_LANGUAGE,
                RC_DEFAULT_VIEW_FORMAT,
                RC_DEFFILE,
@@ -528,6 +530,8 @@
        /// Default decimal point when aligning table columns on decimal
        std::string default_decimal_point;
        ///
+       Length::UNIT default_length_unit;
+       ///
        enum ScrollWheelZoom {
                SCROLL_WHEEL_ZOOM_OFF,
                SCROLL_WHEEL_ZOOM_CTRL,

Modified: lyx-devel/trunk/src/frontends/qt4/GuiPrefs.cpp
==============================================================================
--- lyx-devel/trunk/src/frontends/qt4/GuiPrefs.cpp      Thu Oct 27 13:49:15 
2011        (r40029)
+++ lyx-devel/trunk/src/frontends/qt4/GuiPrefs.cpp      Thu Oct 27 13:52:11 
2011        (r40030)
@@ -2255,6 +2255,8 @@
                this, SIGNAL(changed()));
        connect(defaultDecimalPointLE, SIGNAL(textChanged(QString)),
                this, SIGNAL(changed()));
+       connect(defaultLengthUnitCO, SIGNAL(activated(int)),
+               this, SIGNAL(changed()));
 
        languagePackageED->setValidator(new 
NoNewLineValidator(languagePackageED));
        startCommandED->setValidator(new NoNewLineValidator(startCommandED));
@@ -2268,6 +2270,9 @@
        defaultDecimalPointLE->setInputMask("X; ");
        defaultDecimalPointLE->setMaxLength(1);
 
+       defaultLengthUnitCO->addItem(lyx::qt_(unit_name_gui[Length::CM]), 
Length::CM);
+       defaultLengthUnitCO->addItem(lyx::qt_(unit_name_gui[Length::IN]), 
Length::IN);
+
        set<string> added;
        uiLanguageCO->blockSignals(true);
        uiLanguageCO->addItem(qt_("Default"), toqstr("auto"));
@@ -2327,6 +2332,7 @@
        rc.gui_language = fromqstr(
                
uiLanguageCO->itemData(uiLanguageCO->currentIndex()).toString());
        rc.default_decimal_point = fromqstr(defaultDecimalPointLE->text());
+       rc.default_length_unit = (Length::UNIT) 
defaultLengthUnitCO->itemData(defaultLengthUnitCO->currentIndex()).toInt();
 }
 
 
@@ -2348,8 +2354,10 @@
        startCommandED->setText(toqstr(rc.language_command_begin));
        endCommandED->setText(toqstr(rc.language_command_end));
        defaultDecimalPointLE->setText(toqstr(rc.default_decimal_point));
+       int pos = defaultLengthUnitCO->findData(int(rc.default_length_unit));
+       defaultLengthUnitCO->setCurrentIndex(pos);
 
-       int pos = uiLanguageCO->findData(toqstr(rc.gui_language));
+       pos = uiLanguageCO->findData(toqstr(rc.gui_language));
        uiLanguageCO->blockSignals(true);
        uiLanguageCO->setCurrentIndex(pos);
        uiLanguageCO->blockSignals(false);

Modified: lyx-devel/trunk/src/frontends/qt4/ui/PrefLanguageUi.ui
==============================================================================
--- lyx-devel/trunk/src/frontends/qt4/ui/PrefLanguageUi.ui      Thu Oct 27 
13:49:15 2011        (r40029)
+++ lyx-devel/trunk/src/frontends/qt4/ui/PrefLanguageUi.ui      Thu Oct 27 
13:52:11 2011        (r40030)
@@ -154,7 +154,20 @@
      </property>
     </widget>
    </item>
-   <item row="5" column="0" colspan="2">
+    <item row="5" column="0">
+      <widget class="QLabel" name="defaultLengthUnitLA">
+        <property name="text">
+          <string>Default length &amp;unit:</string>
+        </property>
+        <property name="buddy">
+          <cstring>defaultLengthUnitCO</cstring>
+        </property>
+      </widget>
+    </item>
+    <item row="5" column="1">
+      <widget class="QComboBox" name="defaultLengthUnitCO" />
+    </item>
+    <item row="6" column="0" colspan="2">
     <widget class="QCheckBox" name="globalCB">
      <property name="toolTip">
       <string>Check to pass the language globally (to the document class), not 
locally (to the language package)</string>
@@ -164,7 +177,7 @@
      </property>
     </widget>
    </item>
-   <item row="6" column="0">
+   <item row="7" column="0">
     <widget class="QCheckBox" name="autoBeginCB">
      <property name="toolTip">
       <string>If checked, the document language is not explicitly set by a 
language switch command</string>
@@ -174,7 +187,7 @@
      </property>
     </widget>
    </item>
-   <item row="7" column="0">
+   <item row="8" column="0">
     <widget class="QCheckBox" name="autoEndCB">
      <property name="toolTip">
       <string>If checked, the document language is not explicitly closed by a 
language switch command</string>
@@ -184,7 +197,7 @@
      </property>
     </widget>
    </item>
-   <item row="8" column="0" colspan="2">
+   <item row="9" column="0" colspan="2">
     <widget class="QCheckBox" name="markForeignCB">
      <property name="toolTip">
       <string>Check to highlight foreign languages visually in the work 
area</string>
@@ -194,7 +207,7 @@
      </property>
     </widget>
    </item>
-   <item row="9" column="0" colspan="3">
+   <item row="10" column="0" colspan="3">
     <widget class="QGroupBox" name="rtlGB2">
      <property name="toolTip">
       <string/>
@@ -272,7 +285,7 @@
      </layout>
     </widget>
    </item>
-   <item row="10" column="0">
+   <item row="11" column="0">
     <spacer>
      <property name="orientation">
       <enum>Qt::Vertical</enum>

Reply via email to