2003-12-10 Angus Leeming <leeming@lyx.org>
- * FORMAT: document format 226.
+ * FORMAT: document formats 226 and 227
2003-12-01 André Pönitz <poenitz@gmx.net>
LyX file-format changes
-----------------------
+2003-12-10 Angus Leeming <leeming@lyx.org>
+
+ * Change the output of InsetBox:
+ \begin_inset Boxed -> \begin_inset Box Boxed
+ \begin_inset Doublebox -> \begin_inset Box Doublebox
+ \begin_inset Frameless -> \begin_inset Box Frameless
+ \begin_inset ovalbox -> \begin_inset Box ovalbox
+ \begin_inset Ovalbox -> \begin_inset Box Ovalbox
+ \begin_inset Shadowbox -> \begin_inset Box Shadowbox
+
2003-12-10 Angus Leeming <leeming@lyx.org>
* Change the output of InsetNote:
+2003-12-10 Angus Leeming <leeming@lyx.org>
+
+ * lyx2lyx: up the format to 227.
+ (lyxformat): squash latent bug when reporting an inability to convert
+ to the desired format.
+
+ * lyxconvert_226.py:
+ * lyxrevert_227.py: convert the Box inset between formats 226 and 227.
+
2003-12-10 Angus Leeming <leeming@lyx.org>
* lyx2lyx: up the format to 226.
format = re.compile(r"(\d)[\.,]?(\d\d)")
fileformat = re.compile(r"\\lyxformat\s*(\S*)")
-lst_ft = [210, 215, 216, 217, 218, 220, 221, 223, 224, 225, 226]
+lst_ft = [210, 215, 216, 217, 218, 220, 221, 223, 224, 225, 226, 227]
def usage():
print """Usage: lyx2lyx [options] [file]
if fmt in lst_ft:
return fmt
- opt.err.write(fmt + ": " + error.format_not_supported)
+ opt.err.write(str(fmt) + ": " + error.format_not_supported)
sys.exit(1)
def read_file(file, header, body):
--- /dev/null
+# This file is part of lyx2lyx
+# Copyright (C) 2003 José Matos <jamatos@fep.up.pt>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+from parser_tools import find_tokens
+
+def convert_box(lines):
+ i = 0
+ while 1:
+ i = find_tokens(lines, ["\\begin_inset Boxed",
+ "\\begin_inset Doublebox",
+ "\\begin_inset Frameless",
+ "\\begin_inset ovalbox",
+ "\\begin_inset Ovalbox",
+ "\\begin_inset Shadowbox"], i)
+ if i == -1:
+ break
+
+ lines[i] = lines[i][0:13] + 'Box ' + lines[i][13:]
+ i = i + 1
+
+def convert(header, body):
+ convert_box(body)
+
+if __name__ == "__main__":
+ pass
--- /dev/null
+# This file is part of lyx2lyx
+# Copyright (C) 2003 Jos\81é Matos <jamatos@fep.up.pt>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+from parser_tools import find_token
+
+def convert_box(lines):
+ box_header = "\\begin_inset Box "
+ i = 0
+ while 1:
+ i = find_token(lines, box_header, i)
+ if i == -1:
+ break
+
+ lines[i] = "\\begin_inset " + lines[i][len(box_header):]
+ i = i + 1
+
+def convert(header, body):
+ convert_box(body)
+
+if __name__ == "__main__":
+ pass
+2003-12-10 Angus Leeming <leeming@lyx.org>
+
+ * buffer.C: up the format to 227.
+
+ * factory.C: the box inset is now identified simply by 'Box'.
+
2003-12-10 Angus Leeming <leeming@lyx.org>
* buffer.C: up the format to 226.
namespace {
-const int LYX_FORMAT = 226;
+const int LYX_FORMAT = 227;
} // namespace anon
inset.reset(new InsetGraphics);
} else if (tmptok == "Note") {
inset.reset(new InsetNote(buf.params(), tmptok));
- } else if (tmptok == "Boxed" || tmptok == "ovalbox"
- || tmptok == "Shadowbox" || tmptok == "Doublebox"
- || tmptok == "Ovalbox" || tmptok == "Frameless") {
+ } else if (tmptok == "Box") {
inset.reset(new InsetBox(buf.params(), tmptok));
} else if (tmptok == "CharStyle") {
lex.next();
+2003-12-10 Angus Leeming <leeming@lyx.org>
+
+ * insetbox.C: (read, write): now prepend the inset contents with
+ 'Box' to identify the inset as a box inset.
+
+ * insetbox.h: move the translators out of sight.
+
2003-12-10 Angus Leeming <leeming@lyx.org>
* insetert.C (string2params): clean-up using the new lyxlex interface.
* insetexternal.C (draw): update the xo_, yo_ cache.
- * ExternalTransforms.[Ch] (ResizeData): add a usingScale member function.
+ * ExternalTransforms.[Ch] (ResizeData): add a usingScale member
+ function.
(RotationDataType): new helper struct wrapping the
RotationData::OriginType enum.
#include "paragraph.h"
#include "support/std_sstream.h"
+#include "support/translator.h"
using std::auto_ptr;
using std::string;
namespace {
+typedef Translator<std::string, InsetBox::BoxType> BoxTranslator;
+
BoxTranslator const init_boxtranslator() {
BoxTranslator translator("Boxed", InsetBox::Boxed);
translator.addPair("Frameless", InsetBox::Frameless);
void InsetBoxMailer::string2params(string const & in,
- InsetBoxParams & params)
+ InsetBoxParams & params)
{
params = InsetBoxParams(string());
LyXLex lex(0,0);
lex.setStream(data);
- string token;
- lex.next();
- token = lex.getString();
- lex.next();
+ string name;
+ lex >> name;
+ if (!lex || name != name_) {
+ lyxerr << "InsetBoxMailer::string2params(" << in << ")\n"
+ << "Missing identifier \"" << name_ << '"' << std::endl;
+ return;
+ }
+
+ // This is part of the inset proper that is usually swallowed
+ // by LyXText::readInset
+ string inset_id;
+ lex >> inset_id;
+ if (!lex || inset_id != "Box")
+ return;
params.read(lex);
}
void InsetBoxParams::write(ostream & os) const
{
- os << type << "\n";
+ os << "Box " << type << "\n";
os << "position \"" << pos << "\"\n";
os << "hor_pos \"" << hor_pos << "\"\n";
os << "has_inner_box " << inner_box << "\n";
void InsetBoxParams::read(LyXLex & lex)
{
+ if (!lex.isOK())
+ return;
+
if (lex.isOK()) {
+ lex.next();
type = lex.getString();
}
- string token;
if (!lex.isOK())
return;
lex.next();
+ string token;
token = lex.getString();
if (token == "position") {
lex.next();
#include "insetcollapsable.h"
#include "lyxlength.h"
-#include "support/translator.h"
struct InsetBoxParams {
};
-namespace {
-
-typedef Translator<std::string, InsetBox::BoxType> BoxTranslator;
-BoxTranslator const & boxtranslator();
-BoxTranslator const & boxtranslator_loc();
-
-} // anon
-
-
#include "mailinset.h"
class InsetBoxMailer : public MailInset {