- Have InsetFlex::layoutName() report "Flex:" + the inset name.
- Do some layout2layout work so that user insets that do not have
  the "Flex:" prefix get it.

Note that this will break some CopyStyle stuff, but we do not have any
decent way to do that, so users will have to make that change for
themselves. I guess we should add that to the release notes.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38112 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Richard Heck 2011-03-28 23:11:54 +00:00
parent dc18fcea6f
commit ebe6c9287f
3 changed files with 37 additions and 3 deletions

View File

@ -119,6 +119,9 @@ import os, re, string, sys
# Incremented to format 34, 28 March 2011 by rgh
# Remove obsolete Fill_(Top|Bottom) tags
# Incremented to format 35, 28 March 2011 by rgh
# Try to add "Flex:" to any flex insets that don't have it.
# Do not forget to document format change in Customization
# Manual (section "Declaring a new text class").
@ -126,7 +129,7 @@ import os, re, string, sys
# development/tools/updatelayouts.sh script to update all
# layout files to the new format.
currentFormat = 34
currentFormat = 35
def usage(prog_name):
@ -217,6 +220,10 @@ def convert(lines):
re_QInsetLayout_CopyStyle = re.compile(r'^\s*CopyStyle\s+"(?:Custom|CharStyle|Element):([^"]+)"\s*$', re.IGNORECASE)
re_NeedsFloatPkg = re.compile(r'^(\s*)NeedsFloatPkg\s+(\w+)\s*$', re.IGNORECASE)
re_Fill = re.compile(r'^\s*Fill_(?:Top|Bottom).*$', re.IGNORECASE)
re_InsetLayout2 = re.compile(r'^\s*InsetLayout\s+(\S+)\s*$', re.IGNORECASE)
# with quotes
re_QInsetLayout2 = re.compile(r'^\s*InsetLayout\s+"([^"]+)"\s*$', re.IGNORECASE)
re_IsFlex = re.compile(r'\s*LyXType.*$', re.IGNORECASE)
# counters for sectioning styles (hardcoded in 1.3)
counters = {"part" : "\\Roman{part}",
@ -305,6 +312,33 @@ def convert(lines):
i += 1
continue
if format == 34:
match = re_InsetLayout2.match(lines[i])
if not match:
match = re_QInsetLayout2.match(lines[i])
if not match:
i += 1
continue
name = match.group(1)
names = name.split(":", 1)
if len(names) > 1 and names[0] == "Flex":
i += 1
continue
isflex = False
for j in range(i + 1, len(lines)):
if re_IsFlex.match(lines[j]):
isflex = True
break
if re_End.match(lines[j]):
break
if isflex:
lines[i] = "InsetLayout \"Flex:" + name + "\""
i += 1
continue
if format == 33:
m = re_Fill.match(lines[i])
if m:

View File

@ -60,7 +60,7 @@ namespace lyx {
// development/updatelayouts.sh script, to update the format of
// all of our layout files.
//
int const LAYOUT_FORMAT = 34;
int const LAYOUT_FORMAT = 35;
namespace {

View File

@ -25,7 +25,7 @@ public:
///
InsetFlex(Buffer *, std::string const & layoutName);
///
docstring layoutName() const { return from_utf8(name_); }
docstring layoutName() const { return from_utf8("Flex:" + name_); }
///
InsetLayout const & getLayout() const;
///