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><-----------</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"