New method wrapParas() in support, deployed in various
insets.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29564 a592a061-630c-0410-9148-cb99ea01b6c8
(inernal|external)LineEnding are only used by the clipboard code. Therefore
move them to the Qt helpers, where the current environment is known.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26824 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/lstrings.{cpp,h}:
- new optional param "bool keepemtpy" in getVectorFromString.
By default, empty content between two delimiters was/is not added to the vector.
This can be changed with this bool.
* src/insets/InsetIndex.cpp:
- care for the case when plaintext returns nothing (e.g when ERT is used)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25616 a592a061-630c-0410-9148-cb99ea01b6c8
There might be some header cleanup that can be done here, or some uses of forward declarations and such. This was pretty quick and dirty, just to get it done.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24357 a592a061-630c-0410-9148-cb99ea01b6c8
- Modifier on return type ignored
- Ambigous else
- Ambigous logical operators
- Semi-colon instead of empty block
- Missing header files
- Missing using std::XX
- Initialization out of order
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20304 a592a061-630c-0410-9148-cb99ea01b6c8
- isAscii(): char is signed with MSVC so the comparison was not correct. Add a static_cast to "unsigned char" as per the other methods.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19001 a592a061-630c-0410-9148-cb99ea01b6c8
(lowercase): assert that input is pure ASCII
(uppercase): ditto
* src/support/lstrings.h
(lowercase): document that only ASCII input is allowed
(uppercase): ditto
* src/lyxfind.C
(stringSelected): Use compare_no_case (more efficient)
* src/MenuBackend.C: remove unused using directive
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17393 a592a061-630c-0410-9148-cb99ea01b6c8
* src/output_plaintext.C
(writePlaintextParagraph): Use compare_ascii_no_case instead of
compare_no_case, since the strings to compare are pure ASCII anyway.
* src/frontends/qt4/QPrefsDialog.C
(setComboxFont): ditto
* src/MenuBackend.C
(Menu::checkShortcuts): ditto
* src/frontends/qt4/QLImage.C
(QLImage::loadableFormats): Use ascii_lowercase instead of lowercase
since the input is pure ASCII anyway.
* src/tex2lyx/text.C
(splitLatexLength): ditto
* src/support/lstrings.[Ch]
(compare_no_case): Get rid of both std::string variants
(lowercase): Get rid of std::string variant
(uppercase): Change std::string variant to docstring
* src/support/tests/regfiles/lstrings: Add new expected output
* src/support/tests/lstrings.C: Add tests for docstring functions
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17371 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/lstrings.C
(uppercase): Use qt instead of non working libc/home grown solution
(lowercase): ditto
(local_lowercase): Use qt instead of libc tolower for ucs4 chars
* src/support/qstring_helpers.C
(qstring_to_ucs4): Use qchar_to_ucs4 because of the assertion
* src/support/lstrings.h: Add some documentation
* src/support/qstring_helpers.h
(is_utf16): New function: Tests whether an ucs4 character is also a
valid utf16 character
(qchar_to_ucs4): Assert on is_utf16()
(ucs4_to_qchar): Replace old assertion with better is_utf16()
* src/support/textutils.h
(isLetterChar): Delete non-working implementation
(isPrintable): Ditto
(isPrintableNonspace): Ditto
(isDigit):
* src/support/textutils.C: New file, contains new implementations
using qt of the functions in textutils.h
* src/support/Makefile.am: Add textutils.C
* development/scons/scons_manifest.py: ditto
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17354 a592a061-630c-0410-9148-cb99ea01b6c8
codepoint > 255.
I decided that this is no file format change: We already had the change to
format 249 that allowed unicode in .lyx files. The output to .tex of
non-ascii characters is now different than before (even for those that were
supported previously, e.g. german umlauts in latin1), but this is only
relevant if people referenced a label in ERT. Since we cannot detect this
anyway we don't need a file format change.
* src/support/lstrings.C
(escape): Extend the escaping algorithm from 8 bit to 24 bit.
* src/support/lstrings.h
(escape): Update comment
* lib/lyx2lyx/lyx_1_4.py
(lyx_support_escape): Update comment
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15883 a592a061-630c-0410-9148-cb99ea01b6c8
labelstring_appendix in layout files
* src/text2.C
(LyXText::setLayout): Translate labelwidthstring for paragraph
(LyXText::getStringToIndex): labelwidthstring is now a docstring
* src/buffer.[Ch]
(Buffer::translateLabel): New method for translating a label if it
is not already translated by the user in the layout file
* src/lyxtext.h
(setParagraph): labelwidthstring is now a docstring
* src/support/lstrings.[Ch]
(bool isAscii): New utility function: Determine whether a docstring
contains only pure ascii
* src/text3.C
(LyXText::dispatch): setParagraph() now takes a docstring
* src/lyxlayout.C
(LyXLayout::read): Don't use from_ascii when reading labelstring_,
endlabelstring_ and labelstring_appendix_
* src/buffer_funcs.C
(setLabel): labelwidthstring is now a docstring
(setLabel): Use Buffer::translateLabel instead of Buffer::B_ to
translate labels
(expandLabel): ditto
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15855 a592a061-630c-0410-9148-cb99ea01b6c8
Known problems:
- No space is output after a \hfill. I probably broke this with the
InsetCommand patch. I'll have a look later.
- Although the encoding is now UTF8 the arguments of the inputenc package
are still the old ones, so LaTeX will not run.
- Labels and references with non-ASCII characters are broken. This needs to
be fixed in lyx::support::escape(), but this is a file format change.
- Something seems to be wrong with index entries, but this is probably also
due to the InsetCommand changes.
Have fun!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15378 a592a061-630c-0410-9148-cb99ea01b6c8
export (e.g. the ToC) and the navigate menu.
* src/insets/insetbase.h
(InsetBase::plaintext): output to a docstream
(InsetBase::textString): ditto
* src/mathed/TextPainter.h
(TextPainter::show): ditto
* src/support/docstream.[Ch] New file and string streams for
docstring. The file streams convert to UTF8 on the fly.
* many more files: Adjust to the changes above
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15301 a592a061-630c-0410-9148-cb99ea01b6c8
* lstrings.[Ch]: new docstring trim() function
* qt4/validators.C: PathValidator::validate() and printable_list() converted to unicode.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15281 a592a061-630c-0410-9148-cb99ea01b6c8
No scons and cmake support! scons and cmake need to find out the size of
wchar_t and define this macro in config.h (example for 32bit wchar_t):
* The size of a `wchar_t', as computed by sizeof. */
#define SIZEOF_WCHAR_T 4
* configure.ac: Test size of wchar_t
* src/support/types.h: don't include docstring.h anymore.
Use wchar_t as lyx::char_type if it is 32 bit wide.
* src/support/docstring.h: Use lyx::char_type for defining docstring
* src/metricsinfo.h: include support/docstring.h instead of
support/types.h
* src/lyxlex.h: ditto
* src/frontends/font_metrics.h: ditto
* src/frontends/qt4/qt_helpers.h: ditto
* src/frontends/Painter.h: ditto
* src/errorlist.h: ditto
* src/support/lstrings.h: ditto
* src/lyxfunc.h: ditto
* src/LaTeX.h: ditto
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14991 a592a061-630c-0410-9148-cb99ea01b6c8
* src/frontends/qt[34]/qt_helpers.[Ch]
(toqstr): add variant for docstring
(qstring_to_ucs4): Use docstring and port from qt4 to qt3
* Many other files: Many std::string -> lyx::docstring conversions
* src/support/lstrings.[Ch]
(subst): Add variant for docstring and char_type
(externalLineEnding): std::string -> lyx::docstring
(internalLineEnding): std::string -> lyx::docstring
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14871 a592a061-630c-0410-9148-cb99ea01b6c8
- src/support/unicode.[Ch]: new files with functions for converting
to and fro ucs4, ucs2 and utf8.
- src/support/docstring.h: specialization of basic_string that
holds a uint32_t internally.
- Several functions changed to use char_type instead of char or unsigned char.
- Qt3 and Qt4 sends ucs2 on to core
- Gtk sends ucs4 on to core
- Read and write utf-8 .lyx files.
- font_metrics and painter updated to handle ucs4 chars as input.
- Quite a bit of ugly compability code, conversion string->docstring, etc.
- Have fun...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14661 a592a061-630c-0410-9148-cb99ea01b6c8
* src/cursor.C
(LCursor::plainInsert): combine the previous math atom with the new
one to a MathBigInset if possible
* src/mathed/math_biginset.[Ch]
(MathBigInset::name): implement
(MathBigInset::isBigInsetDelim): new, test whether a given token is
a valid MathBigInset delimiter
* src/mathed/math_biginset.C
(MathBigInset::size): handle Big, Bigg and Biggg
(MathBigInset::increase): ditto
(MathBigInset::draw): fix deco drawing
(MathBigInset::write): append space if necessary
* src/mathed/math_factory.C
(createMathInset): handle l->inset == "big"
* src/mathed/math_parser.C
(Token::asInput): return a token as input, stolen from tex2lyx
(void Parser::parse1): Create a MathBigInset when needed
* src/mathed/math_support.C:
(deco_table): add lbrace and rbrace
* src/mathed/math_nestinset.C
(MathNestInset::interpret): combine the previous math atom with the
new character to a MathBigInset if possible
* src/ParagraphParameters.C
(findToken): move from here
* src/support/lstrings.[Ch]
(findToken): to here
* lib/symbols: add MathBigInset symbols
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13700 a592a061-630c-0410-9148-cb99ea01b6c8