Commit Graph

85 Commits

Author SHA1 Message Date
Juergen Spitzmueller
c59375d679 Move protectArgument function to lstrings
This will be useful to other insets as well.
2017-01-29 12:08:29 +01:00
Juergen Spitzmueller
ef387c81af Handle backslash in escape function.
Fixes: #4595.

Candidate for stable
2017-01-27 09:15:47 +01:00
Juergen Spitzmueller
c0000cc405 Improve quotation mark opening/closing guess
Fixes: #8831

This introduces
* a new inset member isPartOfTextSequence() that returns
whether the inset produces something visible at the current position
in the text flow
* an isOpenPunctuation() test that returns whether a character is in the
'Punctuation, Open' unicode class. This is used instead of just checking
for two (Western, ASCII) opening brackets

It also fixes the isChar() and isLetter() value of InsetSpecialChar,
since some types have not been assigned correctly.
2016-12-27 12:06:54 +01:00
Tommaso Cucinotta
9c1142c880 Remove unneeded templatization code from bformat(). 2016-12-04 17:10:10 +01:00
Guillaume Munch
1f945177b9 Docstringify getLongString in general and preamble snippets in particular
Prepare ground for TexRow InPreamble
2016-10-17 00:16:59 +02:00
Guillaume Munch
efbec20320 Fix the compare_locale function by relying on Qt's (#9030) 2016-08-28 01:30:53 +01:00
Georg Baum
d5f2bad461 Mingw-w64 build fixes for long long
On mingw-w64, long long (64bit wide) is larger than long (32bit wide).
Therefore we need some more specializations for string, docstring,
otextstream and << overloaded ostream functions. The configuration code
is by me, the source code changes by Shankar Giri Venkita Giri (bug 10053).
2016-05-29 17:55:43 -04:00
Georg Baum
c0ce79452f Introduce proper integer rounding function
This fixes a failing unit test with 32bit gcc 4.9.3 and -O2 optimization:
It computed 9953 instead of 9954 for Length::inPixels() of value 2342.
The reason for this is probably different rounding behaviour caused by storing
the unrounded value in a processor register (uses 80bit accuracy) vs. writing
it back to memory (uses 64bit accuracy). The unrounded value is very close to
9953.5 (which is not representable as an exact IEEE floating point value).

Apart from that, having a proper function for rounding makes the code more
readable, and has the nice side effect to make Length::inPB() work for
negative lengths as well.
2016-02-17 21:42:37 +01:00
Guillaume Munch
bb344452c8 Consistency of ellipses across the UI
Use the function support:truncateWithEllipsis() to shorten a docstring with
... at the end. Actually we use U+2026 HORIZONTAL ELLIPSIS instead of "..." when
automatically shortening strings. This is to be consistent with Qt's own
truncation and is much nicer on the screen.

This includes the bugs #9575 and #9572 regarding broken text elision in the
outliner.

Known issues (non-regressions):

* TocBackend::updateItem() should be rewritten to update all TOCs. (#8386)

* "..." should be replaced with … everywhere else on the interface (including
  translation strings).

* We should prefer to rely on QFontMetrics::elidedText() to truncate strings
  with an ellipsis whenever possible, or an equivalent for the buffer view
  dependent on the font metrics. See the warning in src/support/lstrings.h.
2015-10-05 21:16:16 +01:00
Jean-Marc
eba0bbe503 Fix unreachable code
Coverity issues 23292 and 23297.
2015-09-12 18:05:08 +02:00
Georg Baum
b8eb4fffee Make it explicit that we need floating point abs
The 'using namespace std' at the top of the file makes it quite difficult to
understand which abs is used: double std::abs<double>(double) or
int ::abs(int)? Now it is explicit, and the code does not change in subtle
ways if somebody removes the using statement.
2015-06-28 11:27:17 +02:00
Enrico Forestieri
9b0e5215d9 Was forgetting this 2015-06-26 22:54:23 +02:00
Enrico Forestieri
67c52ae773 Amend c9d9309c
It suffices taking the log of the absolute value.
2015-06-26 22:49:17 +02:00
Juergen Spitzmueller
c9d9309c1e Fix formatFPnumber with negative doubles. 2015-06-26 15:49:44 +02:00
Georg Baum
9c9c6be175 Fix MSVC build 2015-05-14 20:36:12 +02:00
Georg Baum
59e4d16ab9 Fix LaTeX length export of big numbers (bug 9416)
LaTeX lengths must not use scientific notation, since the + sign has a
different meaning (glue lengths). This is the export part of bug 9416, the GUI
part is still not fixed.
2015-05-14 12:14:47 +02:00
Jean-Marc
8715bab65c Fix typo spotted by cppcheck 2014-07-05 18:01:19 +02:00
Enrico Forestieri
7d31194085 Fix bug #9146.
If LyX does not know about a given file format, it may easily
happen that the format is recognized as "latex" and this causes
bug #9146. This patch limits the check for a latex format to
non-binary files. The strategy for deciding that a file has
binary content is the same as that adopted by the "less" program.
2014-06-05 17:33:25 +02:00
Enrico Forestieri
480f8d3115 Fix compilation after afc34c7a 2014-05-20 00:43:46 +02:00
Georg Baum
afc34c7a60 Fix bug 9030 except for windows
The format entries should be sorted according to the culture selected for the
UI. This was not the case previously, resulting in unexpected sorting of small
and capital letters. This is now fixed by using the standard C function
strcoll(). Qt does only offer similar functionality in Qt5, and this is not
mature enough yet to depend on it.
Unfortunately we have a report that strcoll() does not work on MSVC, however
this partial fix is better than nothing. The MSVC issue might also be a
configuration problem, since MS claims that strcoll() is supported. This
still needs to be checked.
2014-05-19 22:37:14 +02:00
Richard Heck
fdbe775b9f This is the result of an audit of all static variables, looking
for possible thread conflicts, of the sort Georg resolved at
6a30211f. I have made static variables const where possible,
and marked cases that looked potentially problematic with the
comment:
	// FIXME THREAD
Many of these definitely are vulnerable to concurrent access, such
as the static variables declared at the start of output_latex.cpp.
Suppose, e.g., we were outputting latex and also displaying the
source of a different document.

I'd appreciate it if others could grep for "FIXME THREAD" and see
if some of these are harmless, or what.
2014-04-21 11:51:57 -04:00
Richard Heck
7b46aa8fbb Forgot in previous commit to deal with case. As I'm doing it now,
it's easy to use the existing docstring routine, so I've commented
out the string version of lowercase I had introduced. I've left the
code in case someone else needs it later.
2014-02-23 12:04:56 -05:00
Richard Heck
e5ea535952 If the selection is some sort of URL, then make it the target, not
the name, in the hyperlink. Fixes bug #8792.

This also fixes a bug discovered while working on this code: The
params passed to GuiHyperlink were never used.
2014-02-23 11:36:54 -05:00
Richard Heck
1b1f8dd235 Audit all the LASSERT calls, and try to do something sensible at
each failure.

There are several places I was not sure what to do. These are marked
by comments beginning "LASSERT:" so they can be found easily. At the
moment, they are at:

Author.cpp:105: // LASSERT: What should we do here?
Author.cpp:121: // LASSERT: What should we do here?
Buffer.cpp:4525:        // LASSERT: Is it safe to continue here, or should we just return?
Cursor.cpp:345:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:403:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:1143:                // LASSERT: There have been several bugs around this code, that seem
CursorSlice.cpp:83:     // LASSERT: This should only ever be called from an InsetMath.
CursorSlice.cpp:92:     // LASSERT: This should only ever be called from an InsetMath.
LayoutFile.cpp:303:                     // LASSERT: Why would this fail?
Text.cpp:995:           // LASSERT: Is it safe to continue here?
2013-04-25 17:27:10 -04:00
Georg Baum
f4eae12d60 Improve LaTeX format detection
libmime is a bit lacking here.
2013-04-12 22:31:48 +02:00
Georg Baum
6c54a081fa Make ASCII test more explicit.
I will need isASCII() in tex2lyx as well.
2012-12-30 20:52:49 +01:00
Juergen Spitzmueller
182d13ee6a Do not separate the shortcut from the label string 2012-11-23 18:26:02 +01:00
Pavel Sanda
2257040be4 More headers from lstrings. 2012-11-12 03:02:28 +01:00
Pavel Sanda
7cda6b9d57 Header no more needed. 2012-11-12 02:45:29 +01:00
Jean-Marc Lasgouttes
16fd47ad8f Fix bug #7741: incorrect locale when starting R from LyX?
The goal here is to get rid of the old code that modified variables
LANGUAGE and LC_ALL, therefore creating the problems mentionned
in the ticket.

In the new system, there is no explicit "GUI" message handler, that
needs to be reset at each language change. Instead, getGuiMessages
calls getMessages with the correct parameter. This allows to simplify
greatly the code and to remove a lot of old cruft.
2012-07-15 22:22:10 +02:00
Juergen Spitzmueller
0062538a54 Add some more characters that need to be escaped in labels etc. 2012-06-30 01:24:40 +02:00
Jürgen Spitzmüller
44ed83dd86 Work around qt bug that prevents the glyph LATIN CAPITAL LETTER SHARP S from being pasted (bug #8057).
Candidate for branch.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40829 a592a061-630c-0410-9148-cb99ea01b6c8
2012-03-02 09:06:09 +00:00
Peter Kümmel
8e91dbd4f0 remove debug code, we know the translation failed
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38323 a592a061-630c-0410-9148-cb99ea01b6c8
2011-04-09 22:13:58 +00:00
Peter Kümmel
c3352f6a6b temporary code to find bug #7371
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38320 a592a061-630c-0410-9148-cb99ea01b6c8
2011-04-09 09:42:52 +00:00
Richard Heck
4aead1ffde Improve the wrapParas routine. Previously, we had "..." as the last
line, if we were too big. Now, we put "..." at the end of the last line.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36988 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-22 01:28:32 +00:00
Enrico Forestieri
4457cd44e8 Compile fix for those platforms using the locale facets implemented
in docstring.cpp (this was an oversight in r36748).


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36767 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-07 22:53:07 +00:00
Pavel Sanda
c420c81ec2 Replay r36748
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36757 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-07 00:13:19 +00:00
Pavel Sanda
c68d754a74 Revert commits from 36745
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36749 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-07 00:05:40 +00:00
Stephan Witt
430d03811e #7026 substitute isDigit() by isDigitASCII() and ditch isDigit(); introduce isNumber() and use it in spell checker; change isdigit() to isDigitASCII() otherwise
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36748 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-06 22:35:15 +00:00
Georg Baum
53a72a4526 fix bug #6584
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36687 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-03 17:48:06 +00:00
Georg Baum
dea050cb93 fix bug 3008: Add subscript/superscript inset for text
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36424 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-21 17:00:12 +00:00
Richard Heck
0940cd77d4 Better way of doing these checks, suggested by Enrico.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36356 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-17 22:17:53 +00:00
Richard Heck
67a4b590aa We don't generally use "static" this way in the LyX code any more. (Just
a bit of cleanup while studying other things....)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36354 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-17 22:00:42 +00:00
Richard Heck
e54afe6367 Remove redundant code.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36353 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-17 21:41:23 +00:00
Pavel Sanda
0978e91ecf This stuff is general enough for lstrings
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35646 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-14 11:01:15 +00:00
Pavel Sanda
e45427de38 Fix bug #6649 - fix texrow structure generated by InsetIndex
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34181 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-16 23:47:39 +00:00
Abdelrazak Younes
4c2a354ebd hasDigit(): Avoid a string copy as this is in a critical path for inline spellchecking.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33403 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-10 06:51:49 +00:00
Jürgen Spitzmüller
5f4c5c5da9 * support/lstring.{cpp,h}:
- new function hasDigit
* src/Paragraph.cpp (spellcheck):
	- ignore words with digits, as in 1.6 (bug 6493).

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33395 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-09 17:35:35 +00:00
Jean-Marc Lasgouttes
d81c4751df add a new bformat version
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32282 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-02 09:38:14 +00:00
Jean-Marc Lasgouttes
5ac479af5e constify
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31968 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-13 13:47:25 +00:00