http://bugzilla.lyx.org/show_bug.cgi?id=3337

Attached please find the svn diff output. The purpose of this patch is
to add a control for column separation to the Page Margins dialog. I'm
also attaching a simple test file.

It occurred to me after I did this that there may be a ban on such
things at the moment, as it affects the file format. Specifically, there
needs to be a "\columnsep" setting in the header. If so, sorry. Perhaps
it can be included later.

That said, you will also notice that I made some extensive changes to
MarginsUi.ui. I noticed during testing that the LengthCombo widgets did
not line up neatly with the Label and LineEdit widgets. Specifically,
the LengthCombo widgets seem (at least at some font sizes) to be shorter
than the Labels and LineEdits, so by the time you get to the bottom of
the dialog, the LengthCombos are too high by a few pixels. In any event,
whereas the extant MarginsUi.ui used three vertical layouts, this one
uses two vertical layouts with the Labels in one and the LineEdits and
LengthCombos packed in horizontal layouts within the other. They all
seem to line up now. And, obviously, if you can't now use the columnsep
bit and wish to use this, I can just remove the columnsep lines from
this file.

Best,
Richard Heck

-- 
==================================================================
Richard G Heck, Jr
Professor of Philosophy
Brown University
http://bobjweil.com/heck/
==================================================================
Get my public key from http://sks.keyserver.penguin.de
Hash: 0x1DE91F1E66FFBDEC
Learn how to sign your email using Thunderbird and GnuPG at:
http://dudu.dyn.2-h.org/nist/gpg-enigmail-howto

Index: buffer.C
===================================================================
--- buffer.C	(revision 17493)
+++ buffer.C	(working copy)
@@ -428,6 +428,7 @@
 	params().headheight.erase();
 	params().headsep.erase();
 	params().footskip.erase();
+	params().columnsep.erase();
 	for (int i = 0; i < 4; ++i) {
 		params().user_defined_bullet(i) = ITEMIZE_DEFAULTS[i];
 		params().temp_bullet(i) = ITEMIZE_DEFAULTS[i];
Index: bufferparams.C
===================================================================
--- bufferparams.C	(revision 17493)
+++ bufferparams.C	(working copy)
@@ -559,6 +559,8 @@
 		lex >> headsep;
 	} else if (token == "\\footskip") {
 		lex >> footskip;
+	} else if (token == "\\columnsep") {
+		lex >> columnsep;
 	} else if (token == "\\paperfontsize") {
 		lex >> fontsize;
 	} else if (token == "\\papercolumns") {
@@ -684,6 +686,9 @@
 	if (!footskip.empty())
 		os << "\\footskip "
 		   << VSpace(footskip).asLyXCommand() << '\n';
+	if (!columnsep.empty())
+		os << "\\columnsep "
+				<< VSpace(columnsep).asLyXCommand() << '\n';
 	os << "\\secnumdepth " << secnumdepth
 	   << "\n\\tocdepth " << tocdepth
 	   << "\n\\paragraph_separation "
@@ -970,6 +975,8 @@
 			os << ",headsep=" << from_ascii(headsep);
 		if (!footskip.empty())
 			os << ",footskip=" << from_ascii(footskip);
+		if (!columnsep.empty())
+			os << ",columnsep=" << from_ascii(columnsep);
 		os << "}\n";
 		texrow.newline();
 	}
Index: frontends/qt4/QDocumentDialog.C
===================================================================
--- frontends/qt4/QDocumentDialog.C	(revision 17493)
+++ frontends/qt4/QDocumentDialog.C	(working copy)
@@ -237,6 +237,8 @@
 	connect(marginsModule->headsepUnit, SIGNAL(activated(int)), this, SLOT(change_adaptor()));
 	connect(marginsModule->footskipLE, SIGNAL(textChanged(const QString&)), this, SLOT(change_adaptor()));
 	connect(marginsModule->footskipUnit, SIGNAL(activated(int)), this, SLOT(change_adaptor()));
+	connect(marginsModule->columnsepLE, SIGNAL(textChanged(const QString&)), this, SLOT(change_adaptor()));
+	connect(marginsModule->columnsepUnit, SIGNAL(activated(int)), this, SLOT(change_adaptor()));
 	marginsModule->topLE->setValidator(unsignedLengthValidator(
 		marginsModule->topLE));
 	marginsModule->bottomLE->setValidator(unsignedLengthValidator(
@@ -251,6 +253,8 @@
 		marginsModule->headheightLE));
 	marginsModule->footskipLE->setValidator(unsignedLengthValidator(
 		marginsModule->footskipLE));
+	marginsModule->columnsepLE->setValidator(unsignedLengthValidator(
+		marginsModule->columnsepLE));
 
 	addCheckedLineEdit(form_->bcview(), marginsModule->topLE,
 		marginsModule->topL);
@@ -266,6 +270,8 @@
 		marginsModule->headheightL);
 	addCheckedLineEdit(form_->bcview(), marginsModule->footskipLE,
 		marginsModule->footskipL);
+	addCheckedLineEdit(form_->bcview(), marginsModule->columnsepLE,
+		marginsModule->columnsepL);
 
 
 
@@ -519,6 +525,10 @@
 	marginsModule->footskipL->setEnabled(!custom);
 	marginsModule->footskipLE->setEnabled(!custom);
 	marginsModule->footskipUnit->setEnabled(!custom);
+
+	marginsModule->columnsepL->setEnabled(!custom);
+	marginsModule->columnsepLE->setEnabled(!custom);
+	marginsModule->columnsepUnit->setEnabled(!custom);
 }
 
 
@@ -866,6 +876,8 @@
 
 	params.footskip = widgetsToLength(m->footskipLE, m->footskipUnit);
 
+	params.columnsep = widgetsToLength(m->columnsepLE, m->columnsepUnit);
+
 	branchesModule->apply(params);
 }
 
@@ -1147,6 +1159,9 @@
 	lengthToWidgets(m->footskipLE, m->footskipUnit,
 		params.footskip, defaultUnit);
 
+	lengthToWidgets(m->columnsepLE, m->columnsepUnit,
+		params.columnsep, defaultUnit);
+
 	branchesModule->update(params);
 }
 
Index: frontends/qt4/ui/MarginsUi.ui
===================================================================
--- frontends/qt4/ui/MarginsUi.ui	(revision 17493)
+++ frontends/qt4/ui/MarginsUi.ui	(working copy)
@@ -171,68 +168,19 @@
          </property>
         </widget>
        </item>
-      </layout>
-     </item>
-     <item>
-      <layout class="QVBoxLayout" >
-       <property name="margin" >
-        <number>0</number>
-       </property>
-       <property name="spacing" >
-        <number>6</number>
-       </property>
        <item>
-        <widget class="QLineEdit" name="topLE" >
+        <widget class="QLabel" name="columnsepL" >
          <property name="enabled" >
           <bool>false</bool>
          </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QLineEdit" name="bottomLE" >
-         <property name="enabled" >
-          <bool>false</bool>
-         </property>
          <property name="text" >
-          <string/>
+          <string>&amp;Column sep:</string>
          </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QLineEdit" name="innerLE" >
-         <property name="enabled" >
-          <bool>false</bool>
+         <property name="buddy" >
+          <cstring>columnsepLE</cstring>
          </property>
         </widget>
        </item>
-       <item>
-        <widget class="QLineEdit" name="outerLE" >
-         <property name="enabled" >
-          <bool>false</bool>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QLineEdit" name="headsepLE" >
-         <property name="enabled" >
-          <bool>false</bool>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QLineEdit" name="headheightLE" >
-         <property name="enabled" >
-          <bool>false</bool>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QLineEdit" name="footskipLE" >
-         <property name="enabled" >
-          <bool>false</bool>
-         </property>
-        </widget>
-       </item>
       </layout>
      </item>
      <item>
@@ -244,71 +192,211 @@
         <number>6</number>
        </property>
        <item>
-        <widget class="LengthCombo" name="topUnit" >
-         <property name="enabled" >
-          <bool>false</bool>
-         </property>
-        </widget>
+          <layout class="QHBoxLayout" >
+          <property name="margin" >
+            <number>0</number>
+          </property>
+          <property name="spacing" >
+            <number>6</number>
+          </property>
+          <item>
+            <widget class="QLineEdit" name="topLE" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            </widget>
+          </item>
+          <item>
+            <widget class="LengthCombo" native="1" name="topUnit" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            </widget>
+          </item>
+          </layout>
        </item>
        <item>
-        <widget class="LengthCombo" name="bottomUnit" >
-         <property name="enabled" >
-          <bool>false</bool>
-         </property>
-        </widget>
+          <layout class="QHBoxLayout" >
+          <property name="margin" >
+            <number>0</number>
+          </property>
+          <property name="spacing" >
+            <number>6</number>
+          </property>
+          <item>
+            <widget class="QLineEdit" name="bottomLE" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            <property name="text" >
+              <string/>
+            </property>
+            </widget>
+          </item>
+          <item>
+            <widget class="LengthCombo" native="1" name="bottomUnit" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            </widget>
+          </item>
+          </layout>
        </item>
        <item>
-        <widget class="LengthCombo" name="innerUnit" >
-         <property name="enabled" >
-          <bool>false</bool>
-         </property>
-        </widget>
+          <layout class="QHBoxLayout" >
+          <property name="margin" >
+            <number>0</number>
+          </property>
+          <property name="spacing" >
+            <number>6</number>
+          </property>
+          <item>
+            <widget class="QLineEdit" name="innerLE" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            </widget>
+          </item>
+          <item>
+            <widget class="LengthCombo" native="1" name="innerUnit" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            </widget>
+          </item>
+          </layout>
        </item>
        <item>
-        <widget class="LengthCombo" name="outerUnit" >
-         <property name="enabled" >
-          <bool>false</bool>
-         </property>
-        </widget>
+          <layout class="QHBoxLayout" >
+          <property name="margin" >
+            <number>0</number>
+          </property>
+          <property name="spacing" >
+            <number>6</number>
+          </property>
+          <item>
+            <widget class="QLineEdit" name="outerLE" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            </widget>
+          </item>
+          <item>
+            <widget class="LengthCombo" native="1" name="outerUnit" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            </widget>
+          </item>
+          </layout>
        </item>
        <item>
-        <widget class="LengthCombo" name="headsepUnit" >
-         <property name="enabled" >
-          <bool>false</bool>
-         </property>
-        </widget>
+          <layout class="QHBoxLayout" >
+          <property name="margin" >
+            <number>0</number>
+          </property>
+          <property name="spacing" >
+            <number>6</number>
+          </property>
+          <item>
+            <widget class="QLineEdit" name="headsepLE" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            </widget>
+          </item>
+          <item>
+            <widget class="LengthCombo" native="1" name="headsepUnit" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            </widget>
+          </item>
+          </layout>
        </item>
        <item>
-        <widget class="LengthCombo" name="headheightUnit" >
-         <property name="enabled" >
-          <bool>false</bool>
-         </property>
-        </widget>
+          <layout class="QHBoxLayout" >
+          <property name="margin" >
+            <number>0</number>
+          </property>
+          <property name="spacing" >
+            <number>6</number>
+          </property>
+          <item>
+            <widget class="QLineEdit" name="headheightLE" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            </widget>
+          </item>
+          <item>
+            <widget class="LengthCombo" native="1" name="headheightUnit" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            </widget>
+          </item>
+          </layout>
        </item>
        <item>
-        <widget class="LengthCombo" name="footskipUnit" >
-         <property name="enabled" >
-          <bool>false</bool>
-         </property>
-        </widget>
+          <layout class="QHBoxLayout" >
+          <property name="margin" >
+            <number>0</number>
+          </property>
+          <property name="spacing" >
+            <number>6</number>
+          </property>
+          <item>
+            <widget class="QLineEdit" name="footskipLE" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            </widget>
+          </item>
+          <item>
+            <widget class="LengthCombo" native="1" name="footskipUnit" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            </widget>
+          </item>
+          </layout>
        </item>
-      </layout>
-     </item>
+       <item>
+          <layout class="QHBoxLayout" >
+          <property name="margin" >
+            <number>0</number>
+          </property>
+          <property name="spacing" >
+            <number>6</number>
+          </property>
+          <item>
+            <widget class="QLineEdit" name="columnsepLE" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            </widget>
+          </item>
+          <item>
+            <widget class="LengthCombo" native="1" name="columnsepUnit" >
+            <property name="enabled" >
+              <bool>false</bool>
+            </property>
+            </widget>
+          </item>
+          </layout>
+       </item>
+      </layout> 
+    </item>
     </layout>
    </item>
   </layout>
  </widget>
- <pixmapfunction></pixmapfunction>
- <includes>
-  <include location="local" >qt_helpers.h</include>
- </includes>
  <customwidgets>
   <customwidget>
    <class>LengthCombo</class>
-   <extends></extends>
+   <extends>QWidget</extends>
    <header>lengthcombo.h</header>
-   <container>0</container>
-   <pixmap></pixmap>
   </customwidget>
  </customwidgets>
  <tabstops>
@@ -320,6 +408,9 @@
   <tabstop>headheightLE</tabstop>
   <tabstop>footskipLE</tabstop>
  </tabstops>
+ <includes>
+  <include location="local" >qt_helpers.h</include>
+ </includes>
  <resources/>
  <connections/>
 </ui>
Index: bufferparams.h
===================================================================
--- bufferparams.h	(revision 17493)
+++ bufferparams.h	(working copy)
@@ -144,6 +144,8 @@
 	std::string headsep;
 	///
 	std::string footskip;
+	///
+	std::string columnsep;
 
 	/* some LaTeX options */
 	/// The graphics driver

Attachment: 3337.test.lyx
Description: application/lyx

Reply via email to