Helge Hafting wrote:
Now with:
 * New file format version
 * Conversion back to ERT when necessary
 * Context menus
   * menu accelerators - although not very logical ones as the
     obvious keys r-right, u-up, d-down all were in use already.
     Forgot this the last time.

I also fixed an error in the previous patch, gvim mangled the ü's for some reason.

Helge Hafting
Index: development/FORMAT
===================================================================
--- development/FORMAT	(revisjon 24553)
+++ development/FORMAT	(arbeidskopi)
@@ -1,6 +1,11 @@
 LyX file-format changes
 -----------------------
 
+2008-25-04 Helge Hafting <[EMAIL PROTECTED]>
+	* Format incremented to 330: More horizontal fills
+	  - \leftarrowfill, \rightarrowfill
+	  - \upbracefill, \downbracefill
+
 2008-04-28 Jürgen Spitzmüller <[EMAIL PROTECTED]>
 	* Format incremented to 329: new param \master.
 
Index: src/insets/InsetSpace.cpp
===================================================================
--- src/insets/InsetSpace.cpp	(revisjon 24553)
+++ src/insets/InsetSpace.cpp	(arbeidskopi)
@@ -102,6 +102,18 @@
 	case InsetSpaceParams::HRULEFILL:
 		message = _("Horizontal Fill (Rule)");
 		break;
+	case InsetSpaceParams::LEFTARROWFILL:
+		message = _("Horizontal Fill (Left Arrow)");
+		break;
+	case InsetSpaceParams::RIGHTARROWFILL:
+		message = _("Horizontal Fill (Right Arrow)");
+		break;
+	case InsetSpaceParams::UPBRACEFILL:
+		message = _("Horizontal Fill (Up Brace)");
+		break;
+	case InsetSpaceParams::DOWNBRACEFILL:
+		message = _("Horizontal Fill (Down Brace)");
+		break;
 	case InsetSpaceParams::CUSTOM:
 		message = support::bformat(_("Horizontal Space (%1$s)"),
 				params_.length.asDocstring());
@@ -202,6 +214,10 @@
 		case InsetSpaceParams::HFILL_PROTECTED:
 		case InsetSpaceParams::DOTFILL:
 		case InsetSpaceParams::HRULEFILL:
+		case InsetSpaceParams::LEFTARROWFILL:
+		case InsetSpaceParams::RIGHTARROWFILL:
+		case InsetSpaceParams::UPBRACEFILL:
+		case InsetSpaceParams::DOWNBRACEFILL:
 			// shut up compiler
 			break;
 	}
@@ -222,6 +238,9 @@
 		int const y0 = y + desc;
 		int const y1 = y - asc;
 		int const y2 = y - asc / 2;
+		int const xoffset = (y0 - y1) / 2;
+		int const x2 = x0 + xoffset;
+		int const x3 = x1 - xoffset;
 
 		if (params_.kind == InsetSpaceParams::HFILL) {
 			pi.pain.line(x0, y1, x0, y0, Color_added_space);
@@ -238,10 +257,26 @@
 			pi.pain.line(x0, y, x1, y, Color_special,
 				frontend::Painter::line_onoffdash);
 			pi.pain.line(x1, y1, x1, y0, Color_special);
-		} if (params_.kind == InsetSpaceParams::HRULEFILL) {
+		} else if (params_.kind == InsetSpaceParams::HRULEFILL) {
 			pi.pain.line(x0, y1, x0, y0, Color_special);
 			pi.pain.line(x0, y, x1, y, Color_special);
 			pi.pain.line(x1, y1, x1, y0, Color_special);
+		} else if (params_.kind == InsetSpaceParams::LEFTARROWFILL) {
+			pi.pain.line(x2, y1 , x0, y2, Color_special);
+			pi.pain.line(x0, y2 , x2, y0, Color_special);
+			pi.pain.line(x0, y2 , x1, y2, Color_special);
+		} else if (params_.kind == InsetSpaceParams::RIGHTARROWFILL) {
+			pi.pain.line(x3, y1 , x1, y2, Color_special);
+			pi.pain.line(x1, y2 , x3, y0, Color_special);
+			pi.pain.line(x0, y2 , x1, y2, Color_special);
+		} else if (params_.kind == InsetSpaceParams::UPBRACEFILL) {
+			pi.pain.line(x0, y1 , x2, y2, Color_special);
+			pi.pain.line(x3, y2 , x1, y1, Color_special);
+			pi.pain.line(x2, y2 , x3, y2, Color_special);
+		} else if (params_.kind == InsetSpaceParams::DOWNBRACEFILL) {
+			pi.pain.line(x0, y0 , x2, y2, Color_special);
+			pi.pain.line(x3, y2 , x1, y0, Color_special);
+			pi.pain.line(x2, y2 , x3, y2, Color_special);
 		}
 		return;
 	}
@@ -313,7 +348,19 @@
 	case InsetSpaceParams::HRULEFILL:
 		os <<  "\\hrulefill{}";
 		break;
-	case InsetSpaceParams::CUSTOM:
+	case InsetSpaceParams::LEFTARROWFILL:
+		os <<  "\\leftarrowfill{}";
+		break;
+	case InsetSpaceParams::RIGHTARROWFILL:
+		os <<  "\\rightarrowfill{}";
+		break;
+		case InsetSpaceParams::UPBRACEFILL:
+		os <<  "\\upbracefill{}";
+		break;
+	case InsetSpaceParams::DOWNBRACEFILL:
+		os <<  "\\downbracefill{}";
+		break;
+case InsetSpaceParams::CUSTOM:
 		os <<  "\\hspace{}";
 		break;
 	case InsetSpaceParams::CUSTOM_PROTECTED:
@@ -358,6 +405,14 @@
 		kind = InsetSpaceParams::HRULEFILL;
 	else if (command == "\\hspace{}")
 		kind = InsetSpaceParams::CUSTOM;
+	else if (command == "\\leftarrowfill{}")
+		kind = InsetSpaceParams::LEFTARROWFILL;
+	else if (command == "\\rightarrowfill{}")
+		kind = InsetSpaceParams::RIGHTARROWFILL;
+	else if (command == "\\upbracefill{}")
+		kind = InsetSpaceParams::UPBRACEFILL;
+	else if (command == "\\downbracefill{}")
+		kind = InsetSpaceParams::DOWNBRACEFILL;
 	else if (command == "\\hspace*{}")
 		kind = InsetSpaceParams::CUSTOM_PROTECTED;
 	else
@@ -421,6 +476,18 @@
 	case InsetSpaceParams::HRULEFILL:
 		os << (runparams.free_spacing ? " " : "\\hrulefill{}");
 		break;
+	case InsetSpaceParams::LEFTARROWFILL:
+		os << (runparams.free_spacing ? " " : "\\leftarrowfill{}");
+		break;
+	case InsetSpaceParams::RIGHTARROWFILL:
+		os << (runparams.free_spacing ? " " : "\\rightarrowfill{}");
+		break;
+	case InsetSpaceParams::UPBRACEFILL:
+		os << (runparams.free_spacing ? " " : "\\upbracefill{}");
+		break;
+	case InsetSpaceParams::DOWNBRACEFILL:
+		os << (runparams.free_spacing ? " " : "\\downbracefill{}");
+		break;
 	case InsetSpaceParams::CUSTOM:
 		if (runparams.free_spacing)
 			os << " ";
@@ -451,6 +518,18 @@
 	case InsetSpaceParams::HRULEFILL:
 		os << "_____";
 		return 5;
+	case InsetSpaceParams::LEFTARROWFILL:
+		os << "<----";
+		return 5;
+	case InsetSpaceParams::RIGHTARROWFILL:
+		os << "---->";
+		return 5;
+	case InsetSpaceParams::UPBRACEFILL:
+		os << "\\-v-/";
+		return 5;
+	case InsetSpaceParams::DOWNBRACEFILL:
+		os << "/-^-\\";
+		return 5;
 	default:
 		os << ' ';
 		return 1;
@@ -482,6 +561,10 @@
 	case InsetSpaceParams::HRULEFILL:
 		// FIXME
 		os << '\n';
+	case InsetSpaceParams::LEFTARROWFILL:
+	case InsetSpaceParams::RIGHTARROWFILL:
+	case InsetSpaceParams::UPBRACEFILL:
+	case InsetSpaceParams::DOWNBRACEFILL:
 	case InsetSpaceParams::CUSTOM:
 	case InsetSpaceParams::CUSTOM_PROTECTED:
 		// FIXME
@@ -502,7 +585,11 @@
 	return params_.kind == InsetSpaceParams::HFILL
 		|| params_.kind == InsetSpaceParams::HFILL_PROTECTED
 		|| params_.kind == InsetSpaceParams::DOTFILL
-		|| params_.kind == InsetSpaceParams::HRULEFILL;
+		|| params_.kind == InsetSpaceParams::HRULEFILL
+		|| params_.kind == InsetSpaceParams::LEFTARROWFILL
+		|| params_.kind == InsetSpaceParams::RIGHTARROWFILL
+		|| params_.kind == InsetSpaceParams::UPBRACEFILL
+		|| params_.kind == InsetSpaceParams::DOWNBRACEFILL;
 }
 
 
Index: src/insets/InsetSpace.h
===================================================================
--- src/insets/InsetSpace.h	(revisjon 24553)
+++ src/insets/InsetSpace.h	(arbeidskopi)
@@ -51,6 +51,14 @@
 		DOTFILL,
 		/// rubber length, filled with a rule
 		HRULEFILL,
+		/// rubber length, filled with a left arrow
+		LEFTARROWFILL,
+		/// rubber length, filled with a right arrow
+		RIGHTARROWFILL,
+		// rubber length, filled with an up brace
+		UPBRACEFILL,
+		// rubber length, filled with a down brace
+		DOWNBRACEFILL,
 		/// \hspace{length}
 		CUSTOM,
 		/// \hspace*{length}
Index: src/frontends/qt4/ui/HSpaceUi.ui
===================================================================
--- src/frontends/qt4/ui/HSpaceUi.ui	(revisjon 24553)
+++ src/frontends/qt4/ui/HSpaceUi.ui	(arbeidskopi)
@@ -6,7 +6,7 @@
     <x>0</x>
     <y>0</y>
     <width>259</width>
-    <height>146</height>
+    <height>160</height>
    </rect>
   </property>
   <property name="windowTitle" >
@@ -16,12 +16,24 @@
    <bool>true</bool>
   </property>
   <layout class="QGridLayout" >
-   <property name="margin" >
+   <property name="leftMargin" >
     <number>9</number>
    </property>
-   <property name="spacing" >
+   <property name="topMargin" >
+    <number>9</number>
+   </property>
+   <property name="rightMargin" >
+    <number>9</number>
+   </property>
+   <property name="bottomMargin" >
+    <number>9</number>
+   </property>
+   <property name="horizontalSpacing" >
     <number>6</number>
    </property>
+   <property name="verticalSpacing" >
+    <number>6</number>
+   </property>
    <item row="2" column="1" >
     <widget class="QComboBox" name="fillPatternCO" >
      <property name="toolTip" >
@@ -42,6 +54,26 @@
        <string>________</string>
       </property>
      </item>
+     <item>
+      <property name="text" >
+       <string>&lt;-----------</string>
+      </property>
+     </item>
+     <item>
+      <property name="text" >
+       <string>-----------></string>
+      </property>
+     </item>
+     <item>
+      <property name="text" >
+       <string>\-----v-----/</string>
+      </property>
+     </item>
+     <item>
+      <property name="text" >
+       <string>/-----^-----\</string>
+      </property>
+     </item>
     </widget>
    </item>
    <item row="0" column="0" >
@@ -159,12 +191,21 @@
    </item>
    <item row="4" column="0" colspan="3" >
     <layout class="QHBoxLayout" >
-     <property name="margin" >
-      <number>0</number>
-     </property>
      <property name="spacing" >
       <number>6</number>
      </property>
+     <property name="leftMargin" >
+      <number>0</number>
+     </property>
+     <property name="topMargin" >
+      <number>0</number>
+     </property>
+     <property name="rightMargin" >
+      <number>0</number>
+     </property>
+     <property name="bottomMargin" >
+      <number>0</number>
+     </property>
      <item>
       <widget class="QPushButton" name="okPB" >
        <property name="text" >
Index: src/frontends/qt4/GuiHSpace.cpp
===================================================================
--- src/frontends/qt4/GuiHSpace.cpp	(revisjon 24553)
+++ src/frontends/qt4/GuiHSpace.cpp	(arbeidskopi)
@@ -165,6 +165,22 @@
 			item = 6;
 			pattern = 2;
 			break;
+		case InsetSpaceParams::LEFTARROWFILL:
+			item = 6;
+			pattern = 3;
+			break;
+		case InsetSpaceParams::RIGHTARROWFILL:
+			item = 6;
+			pattern = 4;
+			break;
+		case InsetSpaceParams::UPBRACEFILL:
+			item = 6;
+			pattern = 5;
+			break;
+		case InsetSpaceParams::DOWNBRACEFILL:
+			item = 6;
+			pattern = 6;
+			break;
 		case InsetSpaceParams::CUSTOM:
 			item = 7;
 			break;
@@ -220,6 +236,14 @@
 				params.kind = InsetSpaceParams::DOTFILL;
 			else if (fill == 2)
 				params.kind = InsetSpaceParams::HRULEFILL;
+			else if (fill == 3)
+				params.kind = InsetSpaceParams::LEFTARROWFILL;
+			else if (fill == 4)
+				params.kind = InsetSpaceParams::RIGHTARROWFILL;
+			else if (fill == 5)
+				params.kind = InsetSpaceParams::UPBRACEFILL;
+			else if (fill == 6)
+				params.kind = InsetSpaceParams::DOWNBRACEFILL;
 			else if (keep)
 				params.kind = InsetSpaceParams::HFILL_PROTECTED;
 			else
Index: src/Buffer.cpp
===================================================================
--- src/Buffer.cpp	(revisjon 24553)
+++ src/Buffer.cpp	(arbeidskopi)
@@ -115,7 +115,7 @@
 
 namespace {
 
-int const LYX_FORMAT = 329;
+int const LYX_FORMAT = 330;
 
 typedef map<string, bool> DepClean;
 typedef map<docstring, pair<InsetLabel const *, Buffer::References> > RefCache;
Index: lib/lyx2lyx/LyX.py
===================================================================
--- lib/lyx2lyx/LyX.py	(revisjon 24553)
+++ lib/lyx2lyx/LyX.py	(arbeidskopi)
@@ -80,7 +80,7 @@
                    ("1_3",     [221], minor_versions("1.3" , 7)),
                    ("1_4", range(222,246), minor_versions("1.4" , 5)),
                    ("1_5", range(246,277), minor_versions("1.5" , 2)),
-                   ("1_6", range(277,330), minor_versions("1.6" , 0))]
+                   ("1_6", range(277,331), minor_versions("1.6" , 0))]
 
 
 def formats_list():
Index: lib/lyx2lyx/lyx_1_6.py
===================================================================
--- lib/lyx2lyx/lyx_1_6.py	(revisjon 24553)
+++ lib/lyx2lyx/lyx_1_6.py	(arbeidskopi)
@@ -1751,6 +1751,27 @@
         'hrulefill{}\n\\end_layout\n\n\\end_inset\n\n')
 
 
+def revert_arrowbracefills(document):
+    ' Revert rightarrowfill leftarrowfill upbracefill downbracefill '
+    for i in range(len(document.body)):
+        document.body[i] = document.body[i].replace('\\InsetSpace \\leftarrowfill{}', \
+        '\\begin_inset ERT\nstatus collapsed\n\n' \
+        '\\begin_layout Standard\n\n\n\\backslash\n' \
+        'leftarrowfill{}\n\\end_layout\n\n\\end_inset\n\n')
+        document.body[i] = document.body[i].replace('\\InsetSpace \\rightarrowfill{}', \
+        '\\begin_inset ERT\nstatus collapsed\n\n' \
+        '\\begin_layout Standard\n\n\n\\backslash\n' \
+        'rightarrowfill{}\n\\end_layout\n\n\\end_inset\n\n')
+        document.body[i] = document.body[i].replace('\\InsetSpace \\upbracefill{}', \
+        '\\begin_inset ERT\nstatus collapsed\n\n' \
+        '\\begin_layout Standard\n\n\n\\backslash\n' \
+        'upbracefill{}\n\\end_layout\n\n\\end_inset\n\n')
+        document.body[i] = document.body[i].replace('\\InsetSpace \\downbracefill{}', \
+        '\\begin_inset ERT\nstatus collapsed\n\n' \
+        '\\begin_layout Standard\n\n\n\\backslash\n' \
+        'downbracefill{}\n\\end_layout\n\n\\end_inset\n\n')
+
+
 def revert_hspace(document):
     ' Revert \\InsetSpace \\hspace{} to ERT '
     i = 0
@@ -2066,9 +2087,11 @@
            [327, []],
            [328, [remove_embedding, remove_extra_embedded_files, remove_inzip_options]],
            [329, []],
+	   [330, []],
           ]
 
-revert =  [[328, [revert_master]],
+revert =  [[329, [revert_arrowbracefills]],
+	   [328, [revert_master]],
            [327, []],
            [326, [revert_mexican]],
            [325, [revert_pdfpages]],
Index: lib/ui/stdcontext.inc
===================================================================
--- lib/ui/stdcontext.inc	(revisjon 24553)
+++ lib/ui/stdcontext.inc	(arbeidskopi)
@@ -179,6 +179,10 @@
 		Item "Protected Horizontal Fill|i" "next-inset-modify space \hspace*{\fill}"
 		Item "Horizontal Fill (Dots)|D" "next-inset-modify space \dotfill{}"
 		Item "Horizontal Fill (Rule)|R" "next-inset-modify space \hrulefill{}"
+		Item "Horizontal Fill (Left Arrow)|L" "next-inset-modify space \leftarrowfill{}"
+		Item "Horizontal Fill (Right Arrow)|g" "next-inset-modify space \rightarrowfill{}"
+		Item "Horizontal Fill (Up Brace)|p" "next-inset-modify space \upbracefill{}"
+		Item "Horizontal Fill (Down Brace)|B" "next-inset-modify space \downbracefill{}"
 		Item "Custom Length|C" "command-sequence next-inset-modify space \hspace{} \length 1in; next-inset-toggle"
 		Separator
 		Item "Settings...|S" "next-inset-toggle"

Reply via email to