]> git.lyx.org Git - features.git/commitdiff
new document option to suppress the default date, fileformat change, fixes #5823
authorUwe Stöhr <uwestoehr@web.de>
Fri, 14 Aug 2009 00:52:33 +0000 (00:52 +0000)
committerUwe Stöhr <uwestoehr@web.de>
Fri, 14 Aug 2009 00:52:33 +0000 (00:52 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31028 a592a061-630c-0410-9148-cb99ea01b6c8

development/FORMAT
lib/lyx2lyx/lyx_2_0.py
src/Buffer.cpp
src/BufferParams.cpp
src/BufferParams.h
src/frontends/qt4/GuiDocument.cpp
src/frontends/qt4/ui/LaTeXUi.ui

index 9c66c430699c1cfca436f04440010577a763ed0c..b96b0faa4e0f64ad4ce09f3d5c787ff906b81431 100644 (file)
@@ -1,6 +1,10 @@
 LyX file-format changes
 -----------------------
 
+2009-07-20 Uwe Stöhr <uwestoehr@web.de>
+       * Format incremented to 370: introduce a document option to
+         suppress the default date.
+
 2009-07-22 Vincent van Ravesteijn <vfr@lyx.org>
        * Format incremented to 369: add the author ids to the list of
          authors and let the numbering start with 1 in stead of 0.     
index c648509becaaba1f549a2ff55c1f96fa806b6dfd..d088f7773dfc158a86daac87a1e5557d323ef7e4 100644 (file)
@@ -950,7 +950,7 @@ def revert_hspace_glue_lengths(document):
 def convert_author_id(document):
     " Add the author_id to the \\author definition and make sure 0 is not used"
     i = 0
-    j = 1\r
+    j = 1
     while True:
         i = find_token(document.header, "\\author", i)
         if i == -1:
@@ -959,28 +959,28 @@ def convert_author_id(document):
         r = re.compile(r'(\\author) (\".*\")\s?(.*)$')
         m = r.match(document.header[i])
         if m != None:
-            name = m.group(2)\r
-            \r
-            email = ''\r
-            if m.lastindex == 3:\r
-                email = m.group(3)\r
-            document.header[i] = "\\author %i %s %s" % (j, name, email)\r
+            name = m.group(2)
+            
+            email = ''
+            if m.lastindex == 3:
+                email = m.group(3)
+            document.header[i] = "\\author %i %s %s" % (j, name, email)
         j = j + 1
-        i = i + 1\r
-        \r
-    k = 0\r
-    while True:\r
-        k = find_token(document.body, "\\change_", k)\r
-        if k == -1:\r
-            break\r
-\r
-        change = document.body[k].split(' ');\r
-        if len(change) == 3:\r
-            type = change[0]\r
-            author_id = int(change[1])\r
-            time = change[2]\r
-            document.body[k] = "%s %i %s" % (type, author_id + 1, time)\r
-        k = k + 1\r
+        i = i + 1
+        
+    k = 0
+    while True:
+        k = find_token(document.body, "\\change_", k)
+        if k == -1:
+            break
+
+        change = document.body[k].split(' ');
+        if len(change) == 3:
+            type = change[0]
+            author_id = int(change[1])
+            time = change[2]
+            document.body[k] = "%s %i %s" % (type, author_id + 1, time)
+        k = k + 1
 
 def revert_author_id(document):
     " Remove the author_id from the \\author definition "
@@ -997,11 +997,11 @@ def revert_author_id(document):
         if m != None:
             author_id = int(m.group(2))
             idmap[author_id] = j
-            name = m.group(3)\r
-            \r
-            email = ''\r
-            if m.lastindex == 4:\r
-                email = m.group(4)\r
+            name = m.group(3)
+            
+            email = ''
+            if m.lastindex == 4:
+                email = m.group(4)
             document.header[i] = "\\author %s %s" % (name, email)
         i = i + 1
         j = j + 1
@@ -1011,16 +1011,33 @@ def revert_author_id(document):
         k = find_token(document.body, "\\change_", k)
         if k == -1:
             break
-\r
-        change = document.body[k].split(' ');\r
-        if len(change) == 3:\r
-            type = change[0]\r
-            author_id = int(change[1])\r
-            time = change[2]\r
+
+        change = document.body[k].split(' ');
+        if len(change) == 3:
+            type = change[0]
+            author_id = int(change[1])
+            time = change[2]
             document.body[k] = "%s %i %s" % (type, idmap[author_id], time)
         k = k + 1
 
 
+def revert_suppress_date(document):
+    " Revert suppressing of default document date to preamble code "
+    i = 0
+    while True:
+      i = find_token(document.header, "\\suppress_date", i)
+      if i == -1:
+          break
+      # remove the preamble line and write to the preamble
+      # when suppress_date was true
+      date = get_value(document.header, "\\suppress_date", i)
+      if date == "true":
+          add_to_preamble(document, ["% this command was inserted by lyx2lyx"])
+          add_to_preamble(document, ["\\date{}"])
+      del document.header[i]
+      i = i + 1
+
+
 ##
 # Conversion hub
 #
@@ -1049,10 +1066,12 @@ convert = [[346, []],
            [366, []],
            [367, []],
            [368, []],
-           [369, [convert_author_id]]
+           [369, [convert_author_id]],
+           [370, []],
           ]
 
-revert =  [[368, [revert_author_id]],
+revert =  [[369, [revert_suppress_date]],
+           [368, [revert_author_id]],
            [367, [revert_hspace_glue_lengths]],
            [366, [revert_percent_vspace_lengths, revert_percent_hspace_lengths]],
            [365, [revert_percent_skip_lengths]],
index c97a6cddf4d0969f30a58f21874c17e1555d4cb4..e2266d03baf8bbcd991667522ac4d7271a4929e6 100644 (file)
@@ -126,7 +126,7 @@ namespace {
 
 // Do not remove the comment below, so we get merge conflict in
 // independent branches. Instead add your own.
-int const LYX_FORMAT = 369; // vfr: add author ids to list of authors
+int const LYX_FORMAT = 370; // uwestoehr: option to suppress default date
 
 typedef map<string, bool> DepClean;
 typedef map<docstring, pair<InsetLabel const *, Buffer::References> > RefCache;
index 96aaf7af2826eb6a1b1811e80f3ad1fbb54b5a1f..90c2a187d666a6fa2475cca151d113f2ea16f35f 100644 (file)
@@ -363,6 +363,7 @@ BufferParams::BufferParams()
        columns = 1;
        listings_params = string();
        pagestyle = "default";
+       suppress_date = false;
        // white is equal to no background color
        backgroundcolor = lyx::rgbFromHexName("#ffffff");
        compressed = false;
@@ -539,6 +540,8 @@ string BufferParams::readToken(Lexer & lex, string const & token,
        } else if (token == "\\master") {
                lex.eatLine();
                master = lex.getString();
+       } else if (token == "\\suppress_date") {
+               lex >> suppress_date;
        } else if (token == "\\language") {
                readLanguage(lex);
        } else if (token == "\\inputencoding") {
@@ -863,6 +866,7 @@ void BufferParams::writeFile(ostream & os) const
           << "\n\\use_bibtopic " << convert<string>(use_bibtopic)
           << "\n\\use_indices " << convert<string>(use_indices)
           << "\n\\paperorientation " << string_orientation[orientation]
+          << "\n\\suppress_date " << convert<string>(suppress_date)
           << '\n';
           if (backgroundcolor != lyx::rgbFromHexName("#ffffff"))
                os << "\\backgroundcolor " << lyx::X11hexname(backgroundcolor) << '\n';
@@ -1459,6 +1463,10 @@ bool BufferParams::writeLaTeX(odocstream & os, LaTeXFeatures & features,
        // Line spacing
        lyxpreamble += from_utf8(spacing().writePreamble(tclass.provides("SetSpace")));
 
+       // date
+       if (suppress_date)
+               lyxpreamble += "\\date{}\n";
+
        // PDF support.
        // * Hyperref manual: "Make sure it comes last of your loaded
        //   packages, to give it a fighting chance of not being over-written,
index 65e133b1a1f3e2ccd35a46a7b5c032ae0e0b7c0c..0be946c37f42ee1a0c6d4eec607256b06e0e983d 100644 (file)
@@ -259,6 +259,8 @@ public:
        ///
        std::string master;
        ///
+       bool suppress_date;
+       ///
        std::string float_placement;
        ///
        unsigned int columns;
index 515f10791e9266c9fa7a23ce0b6c6e85805e09c3..510f532c254065f46312401b4b3b2b82b93aeca5 100644 (file)
@@ -932,6 +932,8 @@ GuiDocument::GuiDocument(GuiView & lv)
                this, SLOT(change_adaptor()));
        connect(latexModule->childDocPB, SIGNAL(clicked()),
                this, SLOT(browseMaster()));
+       connect(latexModule->suppressDateCB, SIGNAL(clicked()),
+               this, SLOT(change_adaptor()));
 
        // postscript drivers
        for (int n = 0; tex_graphics[n][0]; ++n) {
@@ -1777,6 +1779,9 @@ void GuiDocument::applyView()
        // preamble
        preambleModule->apply(bp_);
 
+       // date
+       bp_.suppress_date = latexModule->suppressDateCB->isChecked();
+
        // biblio
        bp_.setCiteEngine(ENGINE_BASIC);
 
@@ -2148,6 +2153,9 @@ void GuiDocument::paramsToDialog()
        // preamble
        preambleModule->update(bp_, id());
 
+       // date
+       latexModule->suppressDateCB->setChecked(bp_.suppress_date);
+
        // biblio
        biblioModule->citeDefaultRB->setChecked(
                bp_.citeEngine() == ENGINE_BASIC);
index 140a44c9f92660f093762589af1723269ebf5ece..d068a7963d48739ceb171e322c4dad7cce918f5e 100644 (file)
@@ -1,57 +1,49 @@
-<ui version="4.0" >
+<ui version="4.0">
  <class>LaTeXUi</class>
- <widget class="QWidget" name="LaTeXUi" >
-  <property name="geometry" >
+ <widget class="QWidget" name="LaTeXUi">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>341</width>
-    <height>301</height>
+    <height>319</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string/>
   </property>
-  <layout class="QGridLayout" >
-   <property name="margin" >
-    <number>9</number>
-   </property>
-   <property name="spacing" >
-    <number>6</number>
-   </property>
-   <item row="0" column="0" colspan="3" >
-    <widget class="QGroupBox" name="groupBox" >
-     <property name="title" >
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="0" column="0" colspan="3">
+    <widget class="QGroupBox" name="groupBox">
+     <property name="title">
       <string>Document &amp;class</string>
      </property>
-     <layout class="QGridLayout" >
-      <property name="margin" >
+     <layout class="QGridLayout">
+      <property name="margin">
        <number>9</number>
       </property>
-      <property name="spacing" >
+      <property name="spacing">
        <number>6</number>
       </property>
-      <item row="0" column="0" >
-       <widget class="QComboBox" name="classCO" >
-        <property name="maxVisibleItems" >
+      <item row="0" column="0">
+       <widget class="QComboBox" name="classCO">
+        <property name="maxVisibleItems">
          <number>20</number>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <widget class="QPushButton" name="layoutPB" >
-        <property name="sizePolicy" >
-         <sizepolicy>
-          <hsizetype>0</hsizetype>
-          <vsizetype>0</vsizetype>
+      <item row="0" column="1">
+       <widget class="QPushButton" name="layoutPB">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
           <verstretch>0</verstretch>
          </sizepolicy>
         </property>
-        <property name="toolTip" >
+        <property name="toolTip">
          <string>Click to select a local document class definition file</string>
         </property>
-        <property name="text" >
+        <property name="text">
          <string>&amp;Local Layout...</string>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="1" column="0" colspan="3" >
-    <widget class="QGroupBox" name="optionsGB" >
-     <property name="title" >
+   <item row="1" column="0" colspan="3">
+    <widget class="QGroupBox" name="optionsGB">
+     <property name="title">
       <string>Class options</string>
      </property>
-     <layout class="QGridLayout" >
-      <property name="margin" >
+     <layout class="QGridLayout">
+      <property name="margin">
        <number>9</number>
       </property>
-      <property name="spacing" >
+      <property name="spacing">
        <number>6</number>
       </property>
-      <item rowspan="2" row="0" column="1" >
-       <layout class="QVBoxLayout" >
-        <property name="margin" >
-         <number>0</number>
-        </property>
-        <property name="spacing" >
+      <item row="0" column="1" rowspan="2">
+       <layout class="QVBoxLayout">
+        <property name="spacing">
          <number>6</number>
         </property>
+        <property name="margin">
+         <number>0</number>
+        </property>
         <item>
-         <widget class="QLineEdit" name="defaultOptionsLE" >
-          <property name="toolTip" >
+         <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" >
+          <property name="readOnly">
            <bool>true</bool>
           </property>
          </widget>
         </item>
         <item>
-         <widget class="QLineEdit" name="optionsLE" />
+         <widget class="QLineEdit" name="optionsLE"/>
         </item>
        </layout>
       </item>
-      <item row="0" column="0" >
-       <widget class="QCheckBox" name="defaultOptionsCB" >
-        <property name="toolTip" >
+      <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" >
+        <property name="text">
          <string>P&amp;redefined:</string>
         </property>
        </widget>
       </item>
-      <item row="1" column="0" >
-       <widget class="QLabel" name="optionsL" >
-        <property name="text" >
+      <item row="1" column="0">
+       <widget class="QLabel" name="optionsL">
+        <property name="text">
          <string>Cust&amp;om:</string>
         </property>
-        <property name="buddy" >
+        <property name="buddy">
          <cstring>optionsLE</cstring>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="2" column="0" >
-    <widget class="QLabel" name="psdriverL" >
-     <property name="text" >
+   <item row="2" column="0">
+    <widget class="QLabel" name="psdriverL">
+     <property name="text">
       <string>&amp;Graphics driver:</string>
      </property>
-     <property name="buddy" >
+     <property name="buddy">
       <cstring>psdriverCO</cstring>
      </property>
     </widget>
    </item>
-   <item row="2" column="1" >
-    <widget class="QComboBox" name="psdriverCO" >
-     <property name="duplicatesEnabled" >
+   <item row="2" column="2">
+    <widget class="QComboBox" name="psdriverCO">
+     <property name="duplicatesEnabled">
       <bool>false</bool>
      </property>
     </widget>
    </item>
-   <item row="2" column="2" >
-    <spacer>
-     <property name="orientation" >
+   <item row="2" column="3">
+    <spacer name="horizontalSpacer_1">
+     <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
-     <property name="sizeHint" >
+     <property name="sizeHint" stdset="0">
       <size>
        <width>261</width>
        <height>22</height>
      </property>
     </spacer>
    </item>
-   <item row="3" column="0" colspan="3" >
-    <widget class="QGroupBox" name="childDocGB" >
-     <property name="toolTip" >
+   <item row="3" column="0" colspan="4">
+    <widget class="QGroupBox" name="childDocGB">
+     <property name="toolTip">
       <string>Select if the current document is included to a master file</string>
      </property>
-     <property name="statusTip" >
+     <property name="statusTip">
       <string/>
      </property>
-     <property name="title" >
+     <property name="title">
       <string>Select de&amp;fault master document</string>
      </property>
-     <property name="checkable" >
+     <property name="checkable">
       <bool>true</bool>
      </property>
-     <layout class="QGridLayout" >
-      <property name="margin" >
+     <layout class="QGridLayout">
+      <property name="margin">
        <number>9</number>
       </property>
-      <property name="spacing" >
+      <property name="spacing">
        <number>6</number>
       </property>
-      <item row="0" column="0" >
-       <widget class="QLabel" name="childDocLA" >
-        <property name="text" >
+      <item row="0" column="0">
+       <widget class="QLabel" name="childDocLA">
+        <property name="text">
          <string>&amp;Master:</string>
         </property>
-        <property name="buddy" >
+        <property name="buddy">
          <cstring>childDocLE</cstring>
         </property>
        </widget>
       </item>
-      <item row="0" column="2" >
-       <widget class="QPushButton" name="childDocPB" >
-        <property name="text" >
+      <item row="0" column="2">
+       <widget class="QPushButton" name="childDocPB">
+        <property name="text">
          <string>&amp;Browse...</string>
         </property>
        </widget>
       </item>
-      <item row="0" column="1" >
-       <widget class="QLineEdit" name="childDocLE" >
-        <property name="toolTip" >
+      <item row="0" column="1">
+       <widget class="QLineEdit" name="childDocLE">
+        <property name="toolTip">
          <string>Enter the name of the default master document</string>
         </property>
        </widget>
      </layout>
     </widget>
    </item>
-   <item row="4" column="0" >
-    <spacer>
-     <property name="orientation" >
+   <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="5" column="1">
+    <spacer name="verticalSpacer">
+     <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
-     <property name="sizeHint" >
+     <property name="sizeHint" stdset="0">
       <size>
        <width>20</width>
        <height>2</height>
   <tabstop>psdriverCO</tabstop>
  </tabstops>
  <includes>
-  <include location="local" >qt_i18n.h</include>
+  <include location="local">qt_i18n.h</include>
  </includes>
  <resources/>
  <connections>
    <receiver>defaultOptionsLE</receiver>
    <slot>setEnabled(bool)</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>63</x>
      <y>79</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>237</x>
      <y>82</y>
     </hint>