I checked out LyX 1.3.0cvs today to see what is going on in the LyX community. As usual, I found a couple of things that could be improved :-) See my comments and bug reports in the attached file.
Some of the comments are very subjective. I apologize in advance if anybody feels offended.
Kind regards, Michael
The following comments refer to LyX 1.3cvs with the xforms frontend: - gcc 3.2 (SuSE Linux 8.1) aborts compilation of "boost/libs/regex/src/cregex.cpp" with an internal compiler error :-( Not your fault, of course :-) I had to remove a function to continue compilation.
- Open "Save as..." -> Cancel -> Crash
==4262== Conditional jump or move depends on uninitialized value(s)
==4262== at 0x80C5142: WriteAs(BufferView*, Buffer*, std::string const&)
(/usr/include/g++/bits/basic_string.h:338)
==4262== by 0x80DA4F4: LyXFunc::dispatch(FuncRequest const&, bool) (lyxfunc.C:963)
==4262== by 0x80D9241: LyXFunc::dispatch(int, bool)
(/usr/include/g++/bits/basic_string.h:229)
==4262== by 0x820EEAB: Menubar::Pimpl::MenuCallback(flobjs_*, long)
(../../../src/support/DebugStream.h:127)
- To say the truth: I don't like the new xforms dialogs. I understand
that the former dialogs were a little bit large but the new ones
are way too condensed. Was is really necessary to save *every*
pixel? In a certain way, the dialogs conflict with my notion of an
estethic GUI. IMHO, e.g., boxes and input fields should not touch
each other (see the "vertical space" fields in the "Paragraph
layout" dialog). I can also imagine there are problems with
translations (In general, German words are larger than English words).
After all the changes, the thesaurus dialog is a waste of space :-)
- I still think that the error-prone "LyX code" paragraph style
should be replaced by the "alltt" environment (which is part of
the LaTeX distribution) as soon as possible to get rid of legacy
code. An "alltt" inset should preserve spaces but the user must be
able to format the text (an early version of the
ERT inset provided exactly this functionality)
- the NEWS file should list all new features (I couldn't find any
at first glance)
- In mathed, vertical dots are not drawn correctly (especially when selected
many times in sequence in the math panel).
==4284== Conditional jump or move depends on uninitialised value(s)
==4284== at 0x81433B7: MathCursor::targetX() const (math_cursor.C:631)
==4284== by 0x8139C19: InsetFormulaBase::getCursorPos(BufferView*, int&, int&)
const (formulabase.C:227)
==4284== by 0x8139D75: InsetFormulaBase::fitInsetCursor(BufferView*) const
(formulabase.C:286)
==4284== by 0x813B7BC: InsetFormulaBase::localDispatch(FuncRequest const&)
(formulabase.C:818)
==4284==
==4284== Use of uninitialised value of size 4
==4284== at 0x8169747: mathed_draw_deco(MathPainterInfo&, int, int, int, int,
std::string const&) (math_support.C:445)
==4284== by 0x8172302: MathDotsInset::draw(MathPainterInfo&, int, int) const
(math_dotsinset.C:46)
==4284== by 0x8146D82: MathArray::draw(MathPainterInfo&, int, int) const
(math_data.C:254)
==4284== by 0x814E3BD: MathGridInset::draw(MathPainterInfo&, int, int) const
(math_gridinset.C:400)
- Invocation of mathed (CTRL-M):
==4284== Use of uninitialised value of size 4
==4284== at 0x404B638B: _IO_vfprintf (in /lib/libc.so.6)
==4284== by 0x404D4334: _IO_vsnprintf (in /lib/libc.so.6)
==4284== by 0x404BDD04: __snprintf (in /lib/libc.so.6)
==4284== by 0x403FCE27: int std::__convert_from_v<long>(char*, int, char const*,
long, __locale_struct* const&, int) (in /usr/lib/libstdc++.so.5.0.0)
- When starting LyX:
Received unhandled X11 event
Type: 13 Target: 0x260009c
- When exiting LyX:
==4284== Invalid read of size 4
==4284== at 0x821A553: handle_bitmaptable (bmtable.c:217)
==4284== by 0x82985F8: fl_handle_it (objects.c:1542)
==4284== by 0x82988E4: fl_handle_object (objects.c:1572)
==4284== by 0x82965B3: fl_free_object (objects.c:216)
==4284== Address 0x43A81C68 is 48 bytes inside a block of size 52 free'd
==4284== at 0x4003CD19: free (vg_clientfuncs.c:180)
==4284== by 0x821A567: handle_bitmaptable (bmtable.c:221)
==4284== by 0x82985F8: fl_handle_it (objects.c:1542)
==4284== by 0x82988E4: fl_handle_object (objects.c:1572)
==4284==
==4284== Invalid free() / delete / delete[]
==4284== at 0x4003CD19: free (vg_clientfuncs.c:180)
==4284== by 0x821A567: handle_bitmaptable (bmtable.c:221)
==4284== by 0x82985F8: fl_handle_it (objects.c:1542)
==4284== by 0x82988E4: fl_handle_object (objects.c:1572)
==4284== Address 0x43A81C38 is 0 bytes inside a block of size 52 free'd
==4284== at 0x4003CD19: free (vg_clientfuncs.c:180)
==4284== by 0x821A567: handle_bitmaptable (bmtable.c:221)
==4284== by 0x82985F8: fl_handle_it (objects.c:1542)
==4284== by 0x82988E4: fl_handle_object (objects.c:1572)
- Load example file "TableExamples.lyx" and scroll near the end of the
document; set the cursor inside a table cell; scroll down to the
very end of the doc with the wheel of your mouse; then scroll up again
-> the table with the cursor inside is not repainted
- The graphics dialog has been simplified which is a good thing.
However, I don't like to mix up "Scale" with "Width" - these
are two different things that should be separated visually
(even if it enlarges the dialog)! Moreover, it is not possible
to switch back to "Scale" once you have selected a width unit!
- Two comments on the paragraph dialog: If, e.g. "medskip" is selected,
a value entered in the field below should be grayed out. (Once again,
we can start an endless discussion on when a GUI is intuitive...)
One of the oddities of LyX paragraphs are the "Above" and "Below"
settings. Can you tell me (without thinking) what comes first: the line or
the vertical space? Shouldn't lines and vertical spaces be provided
independently from paragraphs? This would also comply with the way LaTeX
handles them.
- Tool tips should be introduced into the "Preferences" dialog.
- LyX 1.3.0cvs failed to save my 1.2.2 document (loading was no problem):
==4432== Conditional jump or move depends on uninitialised value(s)
==4432== at 0x80C5142: WriteAs(BufferView*, Buffer*, std::string const&)
(/usr/include/g++/bits/basic_string.h:338)
==4432== by 0x80DA4F4: LyXFunc::dispatch(FuncRequest const&, bool) (lyxfunc.C:963)
==4432== by 0x80D9241: LyXFunc::dispatch(int, bool)
(/usr/include/g++/bits/basic_string.h:229)
==4432== by 0x820EEAB: Menubar::Pimpl::MenuCallback(flobjs_*, long)
(../../../src/support/DebugStream.h:127)
==4432==
==4432== Use of uninitialised value of size 4
==4432== at 0x80C5177: WriteAs(BufferView*, Buffer*, std::string const&)
(/usr/include/g++/i486-suse-linux/bits/atomicity.h:40)
==4432== by 0x80DA4F4: LyXFunc::dispatch(FuncRequest const&, bool) (lyxfunc.C:963)
==4432== by 0x80D9241: LyXFunc::dispatch(int, bool)
(/usr/include/g++/bits/basic_string.h:229)
==4432== by 0x820EEAB: Menubar::Pimpl::MenuCallback(flobjs_*, long)
(../../../src/support/DebugStream.h:127)
==4432==
==4432== Invalid read of size 4
==4432== at 0x80C5177: WriteAs(BufferView*, Buffer*, std::string const&)
(/usr/include/g++/i486-suse-linux/bits/atomicity.h:40)
==4432== by 0x80DA4F4: LyXFunc::dispatch(FuncRequest const&, bool) (lyxfunc.C:963)
==4432== by 0x80D9241: LyXFunc::dispatch(int, bool)
(/usr/include/g++/bits/basic_string.h:229)
==4432== by 0x820EEAB: Menubar::Pimpl::MenuCallback(flobjs_*, long)
(../../../src/support/DebugStream.h:127)
==4432== Address 0xFFFFFFFC is not stack'd, malloc'd or free'd
- There are certainly many nice features that I wasn't able to appreciate
within the short period of time.
