Commit Graph

23100 Commits

Author SHA1 Message Date
Peter Kümmel
584c3a6f7b build with msvc2013 2015-12-15 13:20:10 +01:00
Peter Kümmel
b46ea7fac0 integrate 3rdparty libs 2015-12-15 13:20:10 +01:00
Peter Kümmel
31b5da479d build zlib with cmake 2015-12-15 13:20:09 +01:00
Peter Kümmel
a34b5376c2 add stripped down zlib 1.2.8 2015-12-15 13:20:08 +01:00
Peter Kümmel
72540e8b87 build libiconv with cmake 2015-12-15 13:20:08 +01:00
Peter Kümmel
69be7ebfa2 add stripped down libiconv 1.4 2015-12-15 13:20:08 +01:00
Peter Kümmel
34c822cf65 build hunspell with cmake 2015-12-15 13:20:07 +01:00
Peter Kümmel
37b951c77a add stripped down hunspell 1.3.3 2015-12-15 13:20:06 +01:00
Stephan Witt
4fd4c31bb6 #9875 disable the modifier check for LFUN_SELF_INSERT on Mac 2015-12-15 01:24:31 +01:00
Stephan Witt
6bac894042 #9875 add checks for having a current_view_ before using it 2015-12-15 01:14:53 +01:00
Guillaume Munch
3c9b62a69d Layout format update: AddToToc, IsTocCaption, OutlinerName
Preliminary work for addressing #7790. Thanks to Richard for providing initial
files this is based on.

Adding to TextClass:
    OutlinerName <string> <string>
    (the second string is translated)
e.g.:
    OutlinerName thm "Definitions & Theorems"

Adding to Layout:
    AddToToc <string>     (default "", means no)
    IsTocCaption <bool>   (default 0)
e.g.:
    AddToToc thm
    IsTocCaption 1

Adding to InsetLayout:
    AddToToc <string>     (default "", means no)
    IsTocCaption <bool>   (default 0)
e.g.:
    AddToToc literate

Adding to inset arguments:
    IsTocCaption <bool>   (default 0)
2015-12-13 19:56:49 +00:00
Kornel Benko
f7a8c5b4eb \origin handling. Use realPath() intead of absFileName()
This change avoids misinterpreting paths containing symbolic parts.
Without this, lyx may not find its own sysdir.
2015-12-13 12:25:32 +01:00
Richard Heck
947aaf7a57 There does not appear to be any need to update the entire Buffer
after each entry into mathed. Instead, we just update the TOC for
anything the mathed happens to be inside.
2015-12-12 17:19:33 -05:00
Richard Heck
cf64064db7 Use the much faster forOutliner also to get the tooltip text. 2015-12-12 17:19:33 -05:00
Richard Heck
a5ea77410e Do not try even to hide buffers that are being processed by LyX.
Should fix #9711.
2015-12-12 13:00:20 -05:00
Richard Heck
394fc5cf15 Simplify logic. 2015-12-12 13:00:20 -05:00
Guillaume Munch
87861bc6d5 Use AMS align instead of eqnarray on newline-insert by default (#2543) 2015-12-11 19:28:32 +00:00
Jean-Marc Lasgouttes
9c43747cc9 Make text margin size dependent on zoom and dpi
The default hardcoded value of 10 corresponds to 2.5mm at 100dpi, but does not make much sense on a HiDpi screen.
2015-12-11 12:26:07 +01:00
Enrico Forestieri
b6880470b3 Fix bug #9898: inset info cannot show specified icon 2015-12-11 08:51:37 +01:00
Georg Baum
92573c9ddc Fix crash in info inset dialog apply (bug 9896)
posBackward() is the exact inverse of posForward(), not backwardPos().
2015-12-10 20:21:20 +01:00
Uwe Stöhr
219b5645c2 Inset files: add includes to compile with cxx11
see the list thread "Re: use FindCXX11Compiler.cmake also for MSVC"
2015-12-10 01:15:16 +01:00
Jean-Marc Lasgouttes
7dbd63e2b9 When counting hfills, make sure that they are active
The active/inactive status of hfills was not checked in numberOfHFills.

The code is reorganized a bit, but the important part is the change in the above function.

Part of bug #9870.
2015-12-09 17:16:00 +01:00
Peter Kümmel
8028110578 qtmain also needed for Qt5 on Windows 2015-12-09 16:45:15 +01:00
Jean-Marc Lasgouttes
f3cdf74e68 Remember the last used QTextLayout object
This crude caching mecanism is useful in the particular case of a screen with many misspelling dotted lines. In this case, it is necessary to build a QTextLayout in order to know where to put the start/end of the spell line. Since rows typically contains text snippets longer than a word, we may be in a situation where the same QTextLayout is constructed repeatedly.

This commit is useful in this particular use case, and should not be costly in other cases. A better fix would be to remember the QTextLayout associated to each row element. This is a bit more work, so this fix should be sufficient for now.

Additionally, do not paint misspelled marks when painting is disabled.

Fixes bug #9890.
2015-12-09 11:57:52 +01:00
Enrico Forestieri
db363ab19f Remove unneeded png images.
Fixes #9857.
2015-12-07 19:14:44 +01:00
Jean-Marc Lasgouttes
79bb97b1ba Detect properly when cursor position cannot be computed
Replace old ad-hoc test by a better one that inspects the coordcache to see whether all the insets in the cursor are known.

Fixes bug #9881.
2015-12-07 13:25:10 +01:00
Scott Kostyshak
acadb4d608 Fix a debug comment 2015-12-07 02:02:04 -05:00
Scott Kostyshak
6631e736bd Revert "InsetFootlike.cpp: disable listings inside footnotes"
Although af8ba5e0 fixed #9321, it broke a valid use case that was
reported by a user at #9785. Hopefully we can come up with a better
fix for #9321.

This reverts commit af8ba5e069.
2015-12-07 01:52:11 -05:00
Richard Heck
4d94460ce3 Add new ProvideStyle tag, which adds a new style only if it does not already
exist. This will allow for a proper fix for bug #8796, though that may or may
not get fixed before 2.2.0.

Also, change the InStyle tag to ModifyStyle, per a suggestion of Jurgen's.
2015-12-05 18:11:46 -05:00
Guillaume Munch
400703aff1 Convert remaining C++ files to UTF-8 2015-12-05 19:33:24 +00:00
Guillaume Munch
d9524321d7 Simplify Unicode symbols for old systems
(http://mid.gmane.org/565E17DD.7090008@clear.net.nz)

Fix the pilcrow and the cross in the outliner for Windows and old Ubuntus.

The thin space after the cross is based on aesthetics (in Ubuntu at least) after
trying both with and without a normal space. A thin space is already used for
display in BiblioInfo.cpp, so I presume it is safe.

Ideally, I prefer  (CROSS MARK), whose description fits the purpose, over ✖
(HEAVY MULTIPLICATION X), which looks too bold in the UI. Whereas ✕
(MULTIPLICATION X, successfully tested in Windows by Andrew) looks too dim. But
 (CROSS MARK) is next to  (NEGATIVE SQUARED CROSS MARK) so it might be as
problematic as the latter.

Do not output the cross on the author name in the toc of tracked changes.
2015-12-04 17:29:39 +00:00
Jean-Marc Lasgouttes
1546b91f27 Make spellchecker dotted underlines thicker. 2015-12-02 21:49:54 +01:00
Jean-Marc Lasgouttes
39e33d5138 Fix width of row when there are active hfills
It is important to make sure in computeRowMetrics that the row width
is correct at the end, because we rely on it in several places.

Fixes bug #9870.
2015-12-01 09:14:22 +01:00
Scott Kostyshak
d887b2a5dc Update previews when turned on in prefs (#9507)
Previews are now generated when previews are turned on in
preferences. This change ensures that when users activate previews
for the first time, they are not confused by no previews showing up
(a restart of LyX or a triggering of each individual preview would
be required).

There was a previously attempted fix for #9507 at 390ae054 which was
reverted at 358745d0 for performance reasons: it updated previews
after every preference change and updating previews is costly (even
if the cache signals there are no changes needed).

This implementation is consistent with what we do for updating the
system fonts in preferences.
2015-11-30 18:51:05 -05:00
Richard Heck
a8f57334e2 Fix bug #9096: Load all the files specified on the command line, and then dispatch whatever commands we are given to those Buffers.
Original patch due to Benjamin Piwowarski. Updated for 2.2 by Richard Heck.
2015-11-29 11:25:21 -05:00
Richard Heck
c01a533acc Whitespace. 2015-11-29 11:25:08 -05:00
Georg Baum
5c35ebcd24 Simplify logic
The old code was more complicated than needed, we have unstarred_name to make
our live easier. The test proves that the new code works as before.
2015-11-27 20:35:13 +01:00
Georg Baum
8ac43f2e04 Add tex2lyx test for verbatim* 2015-11-27 20:30:41 +01:00
Richard Heck
f791b2d3ea Remove "dialog-show print" from various UI locations. 2015-11-26 23:21:07 -05:00
Richard Heck
b4abecd99b Remove some gui remnants of print support. 2015-11-26 23:21:07 -05:00
Uwe Stöhr
bfc749eb23 stdlayouts.inc: support for verbatim*
fileformat change
2015-11-24 23:56:26 +01:00
Georg Baum
e8211fb931 Fix C++11 std::regex incompatibility
boost::regex supports escape sequences starting with a backslash in format
strings of regex_replace, but std::regex does not. Therefore format strings
involving literal backslashes have to be written differently for both flavours.

The special MSVC handling in regex.h is removed, since it is not needed
anymore, and using grep syntax would definitely be wrong.
2015-11-24 20:31:14 +01:00
Jean-Marc Lasgouttes
1f0305509b Fix length of hfills
The computation of the legth of expanded hfills did not take into account their unexpanded size. This is done now by increasing the dimension (+=) instead of merely setting it.

Moreover, since the insets sizes are integer number, rounding effects have to be taken in account. To this end, the extra number of pixels is added to the last hfill in the row.

This fixes part of bug #9860.

Note not everything is fixed by this patch: the logic of ParagraphMetrics::hfillExpansion seems bogus to me. I do not see why consecutive hfills at the beginning of a row should not be all expanded. Since I do not know what are the peculiarities of hfill handling in LaTeX, I did not change it (yet).

I did not either try to investigate the label hfill part, because I do not even know what is so special about it. I think there is a lot of old logic that nobody ever tried to question.
2015-11-24 10:11:17 +01:00
Scott Kostyshak
82ef95043d Add comment 2015-11-23 22:14:14 -05:00
Jean-Marc Lasgouttes
d8719ade59 Implement on screen rendering of alignment in LR boxes.
This is done by implementing contentAlignment() for this inset.

In order to display properly 'stretch' alignment, the code for TextMetrics::getAlign is rewritten to include some code that was in computeRowMetrics.
2015-11-23 11:40:36 +01:00
Kornel Benko
af5ec069c7 Removed doubled code in CMakeLists.txt 2015-11-22 19:20:32 +01:00
Georg Baum
dfe3a7d9fc Fix InsetListings::getCaption() for std::regex
Back references in the format string of regex_replace use the syntax $n both
in std::regex and in boost::regex for the default format. Boost seems to
support the syntax \n in addition, but it is not documented at
http://www.boost.org/doc/libs/master/libs/regex/doc/html/boost_regex/format.html.
Therefore it is a good idea to use $n also for boost.
2015-11-22 17:43:10 +01:00
Georg Baum
3b842d5a62 Add unit test for InsetListings::getCaption()
The regex in InsetListings::getCaption() does not work with C++11 and
std::regex. This can now be checked easily by this new unit test.
2015-11-22 17:36:32 +01:00
Georg Baum
08317ecc0b Fix some thinkos in MSVC regex hack
The changed code is not used, but I tried to use a similar approach for
boost::regex, and found some problems:
- regex_replace and regex_search are implemented in the replacement, so they
  must not be used directly
- an smatch object must be given by reference (as in the called methods),
  otherwise an exception would be thrown at runtime
- the commented out regex_replace version is actually needed

This code is supposed to be deleted, but nevertheless I wanted to record here
how it had to be modified if it was actually needed.
2015-11-22 13:02:39 +01:00
Günter Milde
faadac9f4a Remove wrong FIXME.
Code at this place calls "switchEncoding" which takes care of not-switching
if there is only one inputenc used in the document.
2015-11-21 23:08:54 +01:00
Jean-Marc Lasgouttes
46ca4e9aa6 Improve debug message 2015-11-20 22:43:45 +01:00
Stephan Witt
dd6b5cc67c improved data types for prefix length and pointer diff 2015-11-20 20:48:56 +01:00
Scott Kostyshak
1bd56c8730 Clear the error list before second LaTeX run
It was possible for errors that occured in the first run to be shown
in the error list after the second run. Now, the errors are cleared
before the second run.

Although I do not have a reproducible example at hand, I imagine
this situation would occur if a rerun is required and there is still
an error after the rerun.

Related to #9765.
2015-11-20 13:47:11 -05:00
Scott Kostyshak
0a91abbc9f Update exit code on second LaTeX run (#9765)
Before, the exit code for the first LaTeX run was used to set the
flag, which caused an error to be reported when in fact there was no
error on the second run.

This fix ammends 1dbf0e5a.
2015-11-20 13:40:37 -05:00
Scott Kostyshak
6f207b37ed Add comment 2015-11-20 13:40:37 -05:00
Jean-Marc Lasgouttes
2811f76039 tex2lyx: Add a newline at the end of comment if not at the end of a paragraph.
When importing TeX code like
  %comment
  TEXT
the LyX document currently becomes
  [ERT %comment] TEXT
so that TEXT is now part of the comment.

Now output_comment adds a trailing newline if the token after the
comment is not a newline. Note that the newline that marks the end of
the comment has already been parsed at this point.

tex2lyx tests have been checked manually and updated.

Fixes ticket #9551.
2015-11-20 15:07:21 +01:00
Juergen Spitzmueller
d0aa1d250c Disable Apply button in InsetParams dialogs if there is no inset to apply to.
Fixes: #9386
2015-11-19 15:48:49 +01:00
Kornel Benko
492d44a284 Correct tex2lyx/roundtrip/test-structure.tex test. 2015-11-18 18:35:54 +01:00
Guillaume Munch
355f9a0efc Remove trailing space at the end of \author
Checked that the change is compatible with lyx2lyx (relevant lines are in
lyx_2_0.py).
2015-11-18 02:50:25 +00:00
Guillaume Munch
86bd1cd641 Fix bug #9854 "Dataloss after git merge with change tracking"
A plausible scenario is that change tracking is used together with a versioning
system. In this case, parallel modifications might remove an \author line on one
side, and add another change of this author on the other side. This scenario
causes a bad merge after which the added change has no associated author. In
this case, LyX used to display a list of errors on opening and deliberately
removed the corresponding change tracking information.

* If ever a tracked change refers to an author that does not exist, then add a
  dummy author. This dummy author is not saved to the file afterwards.

* Have a very clear error message on opening such a corrupt file.
2015-11-18 02:50:25 +00:00
Guillaume Munch
dbce5cafcc Rewrite regexes in ECMAScript style (bug #9799) 2015-11-18 01:52:50 +00:00
Uwe Stöhr
cc6c86ff3b theorems.inc: add environment "solution"
fileformat change, fixes bug #6363
2015-11-18 01:14:30 +01:00
Kornel Benko
c9f6ed309f Cmake monolithic build: Some corrections.
In the src/support directory do not use src/support/AppleScriptProxy.cpp if not APPLE.
In the src/client directory remove inclusion of src/TexRow.cpp
2015-11-17 21:21:00 +01:00
Juergen Spitzmueller
dd6340cfcc Do not switch listings to singlebyte encoding with pLateX/Japanese
Also improve Listings warning about uncodable characters
if the encoding has been switched by LyX.

Fixes: #8439
2015-11-17 10:30:03 +01:00
Jean-Marc Lasgouttes
b26b90ae0e Use a QCache for string metrics
This is better because it implements a LRU cache. Indeed, while editing in particular, width of many different strings has to be computed. This is different from the previous situation where only width of single characters was computed and cached.
2015-11-17 09:38:16 +01:00
Jean-Marc Lasgouttes
735c10d039 Update documentation for tabular features 2015-11-17 09:26:29 +01:00
Jean-Marc Lasgouttes
68217b1e4a Implement toggling for longtabular and booktabs tabular features
This is needed for the tabular context menu. This menu is updated accordingly.
2015-11-17 09:18:50 +01:00
Jean-Marc Lasgouttes
0f5886b856 Disable LFUN_LAYOUT when layout cannot be found
Fixes bug #8077
2015-11-17 08:48:55 +01:00
Georg Baum
0c97d6edc0 Fix wrong forward declaration
This popped up in cmake monolithic build once. It looks like BufferView is
included indirectly by some of the other headers (otherwise we would have seen
compile errors for other build configurations as well), bu I'll keep the
forward declaration since we don't want to depend on this indirect header
inclusion.
2015-11-16 21:51:30 +01:00
Georg Baum
1900eb2834 Fix a cmake monolithic build error
N_() is a preprocessor macro to mark translatable static strings. It is not a
good idea to also name a class member variable N_: It did only work in the
other build configurations because gettext.h was not included.
2015-11-16 21:39:03 +01:00
Kornel Benko
5c796730b2 Replace the translatable latexism 'longtable' with 'multi-page table' in UI. 2015-11-16 10:29:53 +01:00
Juergen Spitzmueller
78c706e02d Assure we use docstring.
Cures another monolithic build error with CMake.
2015-11-16 08:21:53 +01:00
Juergen Spitzmueller
2a223b0933 Rename function that was ambiguous from a monolithic perspective.
Cures one monolithic build issue with CMake.
2015-11-16 08:20:54 +01:00
Juergen Spitzmueller
b423c59d3c Factor out multiply used ColorSorter.
This cures one problem of monolithic build (where the function was
ambiguous)
2015-11-16 08:19:16 +01:00
Richard Heck
fb2c558f67 We need to show the error message in the case in which we copied the
file due to a format change, as well.
2015-11-15 12:32:26 -05:00
Richard Heck
9efa43d2be Simplify use of Buffer::getBackupName().
Previous versions of this code used the string in a different way,
but now it is sufficient just to return a FileName.
2015-11-15 12:19:17 -05:00
Guillaume Munch
7b07788278 Amend 789745df
Remove warning. Actually the auxiliary function is not necessary since its
actual contents have been relocated as TexRow::prepend() during dev.
2015-11-15 12:18:47 +00:00
Richard Heck
5afe6cf947 Fix stupid error in cc83dfa887. 2015-11-13 17:03:40 -05:00
Günter Milde
8021c0b0dc Update comments after solving #9740. 2015-11-13 13:59:17 +01:00
Scott Kostyshak
62190855bf Revert "Now math previews are correctly updated when replacing math contents inside"
Updating all previews (even if only one has changed) is more costly
than I thought. Thanks to Guillaume for tracking down this
performance issue.

This reversion is related to the reversions at 358745d0 and
a7a14395. See also #7242 and #9855.

This reverts commit 29948eec26.
2015-11-13 00:54:15 -05:00
Scott Kostyshak
a7a143950a Revert "Update previews after doing a find/replace (#7242)"
Updating all previews (even if only one has changed) is more costly
than I thought. Thanks to Guillaume for tracking down this
performance issue.

This reversion is related to the reversion at 358745d0.
See also #7242 and #9855.

This reverts commit 66f527e417.
2015-11-13 00:50:39 -05:00
Günter Milde
0eb9477be7 Fix 480937a103708a651/lyxgit, second attempt.
Prevent encoding changes whenever the TeX engine is XeTeX or LuaTeX,
as XeTeX/LuaTeX use only one encoding per document:

* with useNonTeXFonts: "utf8plain",
* with XeTeX and TeX fonts: "ascii" (inputenc fails),
* with LuaTeX and TeX fonts: only one encoding accepted by luainputenc.

+1 no needless encoding switches
+1 runparams.encoding matches the correct encoding at any time
+1 less complicated code.

-1 there may still be problems with CJK (possibly impossible to
   solve for Xe/LuaTeX with TeX fonts).

For LuaTeX & TeX fonts, the complete document uses the encoding
of the global document language.

See also #9740.
2015-11-12 16:55:04 +01:00
Scott Kostyshak
358745d0e3 Revert "Update previews on preference change (#9507)"
The referenced commit lead to performance issues and possibly
crashes in some cases when saving preferences. Thanks to Guillaume
for discovering the issues. See #9828 for more discussion.

I hope to come up with a better fix for #9507.

This reverts commit 390ae05444.
2015-11-11 18:06:07 -05:00
Richard Heck
cc83dfa887 Fix bug #9554: When we save a file that was not originally in the current
LyX format, create a backup of the original file. We put it in the backup
directory, if one exists, otherwise in the directory the original file is
in. This is the same strategy as for normal backups. Basically, the only
diferences are: (i) what name we use and (ii) we do not over-write any
backups that may already exist.
2015-11-10 19:40:06 -05:00
Günter Milde
9894e0be23 Fix 480937a103708a651/lyxgit. See also #9740.
Actually, the changed tests were used to prevent overwriting the encoding
changed in Buffer::writeLaTeX with a language-default encoding.
This is still required for XeTeX with TeX-fonts unless a proper solution is found.

Documents with more than one encoding and TeX-fonts fail with LuaTeX,
as "luainputenc" can only handle one encoding.
2015-11-11 00:11:06 +01:00
Guillaume Munch
a8c1161d7b Move tmpdir error message to stderr
http://thread.gmane.org/gmane.editors.lyx.general/85638/focus=157802
2015-11-10 08:04:19 +00:00
Georg Baum
1d3a85fe37 Fix regression of 2fc430d5ae
Thanks Kornel for noticing
2015-11-09 20:06:36 +01:00
Günter Milde
480937a103 Reset encoding after insets and environments also for LuaTeX with TeX fonts.
With inputenc == "auto" or "default", the encoding changes with
the language and must be reset after an eventual language switch in insets
or environments (see #6216).

However, whether we need to do this does not depend on 8-bit TeX vs. LuaTeX
but on the possible use of more than one encoding for the document.
With "nonTeXFonts", the encoding is utf8,
LuaTeX with TeX fonts requires encoding handling similar to 8-bit TeX.

(Additionally, the value of "params.inputenc" could be tested: if it is
not "auto" or "default", we have just one common encoding and could skip
the reset as well.) Not sure how much time this saves, though.
2015-11-09 12:42:48 +01:00
Georg Baum
2fc430d5ae Store both sets of font selections
This is one part of bug 9744: If you toggle between TeX fonts and non-TeX
fonts, the settings of the other choice are no longer thrown away, but stored
and re-activated if you switch back. Most parts of the patch are purely
mechanical (duplicating some BufferParams members), the only non-mechanical
change is in the GUI logic.
2015-11-09 07:36:42 +01:00
Jean-Marc Lasgouttes
32dd44b209 Improve fix to 57615915.
Reset pointer to 0 as Georg suggested in #9804.
2015-11-08 21:53:32 +01:00
Scott Kostyshak
22104ac518 Fix a Makfile.am typo preventing "make lyxdist"
Thanks to Vincent.
2015-11-07 01:48:43 -05:00
Richard Heck
2c4ec33591 Move LFUN_CHANGES_TRACK and LFUN_CHANGES_OUTPUT to Buffer.cpp,
and record an undo call. This deals with the problem of marking
the Buffer dirty, as well.

Move LFUN_BUFFER_TOGGLE_COMPRESSION and LFUN_BUFFER_TOGGLE_OUTPUT_SYNC
to Buffer.cpp, and add an undo call.
2015-11-06 23:13:11 -05:00
Richard Heck
ba99ea5b88 The cite engine info is needed by makeDocumentClass().
Fixes both #9797 and #9848.
2015-11-06 15:53:45 -05:00
Jean-Marc Lasgouttes
89dca6d3a9 Be careful about accounting for the right margin
In computeRowMetrics, the right margin of the row shall be taken in account when the text is not left-aligned. Rewrite the code in terms of the available width `w' to avoid this pitfall.
2015-11-06 14:35:21 +01:00
Günter Milde
4d2074b378 Fix encoding-setting of child document with LuaTeX and TeX-fonts 2015-11-05 10:55:43 +01:00
Jean-Marc Lasgouttes
576159156e Avoid using pointer after it has been invalidated
The pointer macroInset points to a vector element. When another element is inserted in this vector, some reallocation occur and the pointer points to a deleted element.

This does not crash LyX by default, but it is bad enough to make valgrind cry.

See ticket #9804.
2015-11-05 10:01:04 +01:00
Jean-Marc Lasgouttes
eb1e85b096 Try to avoid horizontal scrolling with wide insets.
There was a problem with end of paragraph markers. By design, wide insets choose their size without taking in account the marker. This should not lead to unneeded horizontal scrolling.

Part of ticket #9807.
2015-11-05 09:57:42 +01:00
Georg Baum
60a648c572 Remove unused declarations 2015-11-04 21:41:00 +01:00
Jean-Marc Lasgouttes
a5822a2976 Allow quotes in PDF text properties
PDF properties (Author, Title...) need to be quoted properly when writing (normal operation and tex2lyx). Also, reading them requires to use Lexer::getString() directly, because >> uses next(), which does not handle escapes.

Fixes bug #9830.
2015-11-04 12:18:01 +01:00
Günter Milde
f739c98fd7 Fix some XeTeX + TeX-fonts regressions introduced by fixing #9740.
hyperref expects LICR macros for non-ASCII chars in the PDF Header Information.
As hyperref provides good coverage for \inputencoding{utf8}, we try
this if the current input encoding does not support a character.

With XeTeX, we do not load inputenc and cannot use \inputencoding.
However, utf-8 works out of the box so we can write the content in UTF8.
2015-11-04 11:21:22 +01:00
Uwe Stöhr
62a69584e6 achemso.layout: add a flex inset
- this one is in achemso since version 3.8

- fileformat change
2015-11-04 01:18:13 +01:00
Enrico Forestieri
1c94995aef Fix bug ##9627: Make the document name available to preview insets
The \jobname macro is redefined for the preview snippets such that
it contains the name of the document without extension. This is
harmless because the moment it is redefined, TeX has already chosen
the name of the output and log files. On the other hand, any use
of \jobname in preview snippets is now consistent with what one
obtains after exporting and compiling by hand.
2015-11-04 00:36:41 +01:00
Enrico Forestieri
76dfde36d4 Fix bugs #2645 (export BIBINPUTS) and #6634 (Better support for external files in ERT)
Other than BIBINPUTS, also BSTINPUTS and TEXFONTS are exported.
They do not replicate the setting for TEXINPUTS but are set such
that the current dir (i.e., the temp dir) and the document dir
are also searched for bibtex and fonts related files.
2015-11-03 23:28:36 +01:00
Guillaume Munch
a0783e1527 Amend f441590c 2015-11-03 15:27:25 +00:00
Günter Milde
338f0174cf Fixme for the partial patch for #9740 (XeTeX with TeX fonts), 2015-11-03 12:29:07 +01:00
Guillaume Munch
21eea1e77a Capitalization 2015-11-03 03:54:52 +00:00
Guillaume Munch
f441590c8e Add "Open Containing Directory" button to the log dialog (#9211, #9834)
It takes the place of the "Copy to Clipboard" button which was redundant.
2015-11-03 03:54:52 +00:00
Enrico Forestieri
f8bfc8405e Fix bug #7657: Detect inkscape from the configure script
On Windows, if inkscape is not found in the PATH, search for it
in the registry and store its full path in lyxrc.defaults.
2015-11-02 23:46:14 +01:00
Jean-Marc Lasgouttes
cb8c52bd0c Fix compilation with clang++ 3.6.2. 2015-11-02 16:14:43 +01:00
Jean-Marc Lasgouttes
5e0e676530 Disable setting vertical lines when using a formal table
The code in InsetTabular disables the toolbar icons and menu entries related to vertical lines.

The code in GuiTabular disables vertical lines in the Settings dialog.
Note that there was a bug in
GuiSetBorders::set(Left|Right|Top|Bottom)Enabled, where the borders
did not get drawn correctly.

Fixes bug #9816
2015-11-02 15:58:40 +01:00
Jean-Marc Lasgouttes
1f81cd7b65 Set current font correctly after inset-select-all
Since we modify directly the cursor, it is wise to make sure that the current font is updated.

Fixes bug #9719.
2015-11-02 14:35:50 +01:00
Jean-Marc Lasgouttes
1f0d210ab5 Fix algorithm that computes horizontal scroll offset
Rewrite the logic completely:
* fix cases where the offset was reset unnecessarily
* fix cases where the row was scrolled too much: as soon as a side of the row is completely visible, there is no need to scroll more.
* fix cases where offset would never reset
2015-11-02 11:17:36 +01:00
Jean-Marc Lasgouttes
1db691c2f5 Fix wrong reset of horizontal scolling of current row
This partially reverts commit 0f1fdaaa9, but only redraws the current
row when the value returns by getPos is obviously false. It would also
be possible to check whether the current cursor has all its insets in
cache instead.

A better fix should be found, but this is unfortunately not 2.2 stuff.

Fixes bugs #9796 and #9812.
2015-11-02 11:11:39 +01:00
Guillaume Munch
f6be7d89ef Fix bug #9813
tex/row correspondance for \end{tabular}.
2015-11-02 00:07:21 +00:00
Juergen Spitzmueller
a9b8cdca9e Varwidth module provided by d.iabo
See #9417.
2015-11-01 11:00:23 +01:00
Scott Kostyshak
0911915b6a Typo 2015-10-31 02:12:31 -04:00
Kornel Benko
ea70c1ff0d Cmake tests: Display process while executing for target updatetex2lyxtests
The execution took some time and the messages were delayed
until all test files were processed. Now as each testfile
is processed, the appropriate messages are printed.

There is also a new target: cleanupdatetex2lyxtests
It is the same as updatetex2lyxtests, but removes also
some extra created files from the source directory.
2015-10-30 13:28:20 +01:00
Kornel Benko
9b1f459f77 Cmake tests: Remove the use of file(TIMESTAMP...)
Cmake versions prior to 2.8.11 don't know this command, but
our minimal requirenment is 2.6.4

Thank to Vincent, it is replaced by using 'if(file1 IS_NEWER_THAN file2)' comparision.
2015-10-29 11:07:34 +01:00
Scott Kostyshak
0ca63f4e27 Disable "Show Output Anyway" button if empty file
Sometimes when compilation fails a PDF file is created but is empty
and the viewer gives an error when trying to view it. One such
example is compiling the current lib/examples/PDF-comment.lyx file
with TeX fonts and the following version of LuaTeX:

  beta-0.80.0 (TeX Live 2015) (rev 5238)
2015-10-29 02:27:27 -04:00
Kornel Benko
e430586ec3 Cmake tests: Get rid of use of command 'env', which is not available under Windows. 2015-10-28 17:59:28 +01:00
Jean-Marc Lasgouttes
b5871decc0 Justify row correctly after double space
The wordSpacing property of a QFont object applies only once when there are multiple spaces between words. Therefore Row::Element::countSeparators shall not count spaces, but groups of spaces.

Fixes bug #9808.
2015-10-28 14:03:01 +01:00
Jean-Marc Lasgouttes
febbcf7f6c Fix painting of selection with change tracking
When partially selecting an element, the selected text color was not
the same as when selecting it completely.

Fixes bug #9809.
2015-10-28 10:40:10 +01:00
Günter Milde
c061e339f9 Clarify the FIXME for PDF-info encoding. 2015-10-28 10:31:08 +01:00
Günter Milde
3d521cfcac Update the FIXME for PDF-info encoding. 2015-10-28 10:16:41 +01:00
Uwe Stöhr
2c1851e2ec moderncv.layout: update some styles and add new ones
- support for at least modernCV 1.5 (layout will still work with moderncv 1.3 as before)
- fileformat change
2015-10-28 02:27:32 +01:00
Georg Baum
1eaa2366bf Make language nesting code more readable
This is a tiny simplification that makes understanding the code more easy and
will help in fixing the remaining regressions. The logic remains the same, no
export test result is changed.
2015-10-27 22:36:52 +01:00
Jean-Marc Lasgouttes
f7e639c818 Fix commit 32edb659
A bad test meant an embarassing red line on the left.

This is still bug #9807.
2015-10-26 11:39:58 +01:00
Günter Milde
2aa65fdc8d Fix the partial patch for #9740 (XeTeX with TeX fonts), part 2. 2015-10-26 00:51:38 +01:00
Jean-Marc Lasgouttes
32edb65985 Avoid showing vertical scroll mark when not necessary
Now the mark if only shown when editable text is outside of the row.

Fixes bug #9807.
2015-10-26 00:01:28 +01:00
Günter Milde
36b9645b5d Fix the partial patch for #9740 (XeTeX with TeX fonts). 2015-10-25 12:12:10 +01:00
Stephan Witt
23a3148c02 Fix a missing-braces warning for initialization of subobject 2015-10-24 21:10:36 +02:00
Stephan Witt
2a3b54d57b For Mac OS: Additional check for Control and Meta modifier swap state.
Starting with Qt 5 the modifiers aren't reported correctly for disabled swap.
Until this is fixed it is corrected by reverting the modifier mask to check for.
2015-10-24 21:08:10 +02:00
Georg Baum
d5ed835225 Revert the box alignment part of 8010b90c
The horizontal alignment changes caused a regression for documents in older
formats. This could have been fixed by adding the following lines to the
format entry for 489 in development/FORMAT:

	Previously, the horizontal position was ignored except for the
	following parameter combinations:
	- fixed width and type Boxed and without inner box
	- fixed width and any type   and with    inner box and with makebox
	Now, it is also used for the parameter combination below:
	- makebox is not used and not (type Boxed and without inner box)

and a corresponding conversion to convert_BoxFeatures() in
lib/lyx2lyx/lyx_2_2.py. However, it was decided to revert the box alignment
changes instead: The box alignment can contradict the paragraph alignment. A
better way to avoid the additional space that can be created by paragraph
alignment (which was the motivation for implementing box alignment) is the
same as for table cells (see noTrivlistCentering() in src/Paragraph.cpp).
This would be a file format change and it is too late now for 2.2.0.

See http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg188147.html for the
complete discussion (subject "Regression in lyx2lyx box alignment").
2015-10-23 22:08:38 +02:00
Uwe Stöhr
a685e5601c InsetMathNest.cpp: add \sideset to the autocomplete list
fixes bug #9810
2015-10-23 05:20:51 +02:00
Guillaume Munch
671c7e12e5 Amend bb344452
Repair the senseless truncation on long file names
2015-10-21 15:02:12 +01:00
Guillaume Munch
7a60c96dfa msvc: Proper fix for compilation of TexRow
This bug in MSVC 10 was fixed at e948caf6, but the workaround belongs to
strfwd.h.

Thanks Vincent and Georg.
2015-10-20 21:29:19 +02:00
Vincent van Ravesteijn
990446c0e1 msvc: Move implementation of numpunct<> functions to cpp file
These functions use lyx::from_ascii which means they need to include
docstring.h, but that results in a circular include.
2015-10-20 21:28:40 +02:00
Vincent van Ravesteijn
42e5353f8a Revert "msvc: Fix compilation of TexRow"
This reverts commit 10d7f6d479.
2015-10-20 19:22:36 +02:00
Günter Milde
1523fc6023 Partial fix for #9740 "XeTeX/LuaTeX with TeX fonts problems".
Fixes output for 3 of the 4 test lyx-files.

Includes "FIXME"s at places where further action is required to get the XeTeX
export right but I don't know how.
2015-10-20 19:16:25 +02:00
Guillaume Munch
9d7c3a4876 Amend bb344452 2015-10-20 16:23:25 +01:00
Günter Milde
a0e2d48a56 Update the fileformat number in the tex2lyx test's expected output.
This needs to be done with every fileformat change!
2015-10-20 17:09:54 +02:00
Jean-Marc Lasgouttes
b14c0530eb Assorted cppcheck fixes
Remove member disp_ that is defined both in Cursor and CursorData classes

Pass parameter of convert<T>(docstring const) templates as const reference for performance.
2015-10-20 09:58:46 +02:00
Guillaume Munch
6f2e86dff2 TexRow: fix return value on invalid row input.
Caused loops with Sweave & Knittr compilation.
2015-10-20 00:51:27 +01:00
Vincent van Ravesteijn
10d7f6d479 msvc: Fix compilation of TexRow
The problem was that "odocstringstream << (const char *) ptr" did not
compile using msvc.
2015-10-19 21:27:20 +02:00
Georg Baum
be3e470068 Fix language nesting regression
b1c68dccf8 and 46aed6d2b9 fixed some language nesting issues, but introduced
a regression for the case that there is a standard paragraph in a foreign
language, followed by a list (e.g. itemize) in the same language, followed
by the end of the document, as e.g. in lib/doc/de/Additional.lyx. The reason
for this was that not all language ending commands did reset
state->open_polyglossia_lang_ correctly.
I am sure that one can still construct broken corner cases, and I am also sure
that this was already possible before b1c68dccf8 and 46aed6d2b9. However,
this fix seems to fix the most important issues, and to get nesting completely
correct we would probably need some stack-like structure, for languages and
encodings, also for the CJK part (which is not touched at all by this commit).
2015-10-19 21:08:01 +02:00
Günter Milde
7e716a26a5 Fix #9764, combining diacritical characters for line below (part 2).
The correct mappings break the tex2lyx roundtrip tests because both, 
the tests and tex2lyx use the wrong mapping (\b for "combining minus below").

Fix tex2lyx and the test files so that round-trip tests pass again.
2015-10-19 18:34:48 +02:00
Günter Milde
af16acb0b4 Fix #9792 cyrtext and textcyr in the preamble of every document.
Add the brackets missing in [468cedb923b/lyxgit].
2015-10-19 18:34:48 +02:00
Vincent van Ravesteijn
92b7c5a92f cmake: Put updatetex2lyxtests in an appropriate folder 2015-10-19 17:54:04 +02:00
Jean-Marc Lasgouttes
1e075bdf55 Fix drawing with pixmap cache
The culprit was that the computation of textwidth did not take wordspacing in account.

Also fictor the code so that the pixmap path can use the special RTL handling.

It is not clear however that the handling of left and right bearing works correctly.
2015-10-19 16:38:05 +02:00
Jean-Marc Lasgouttes
26eb5092fb Get rid of ParagraphMetrics::insetDimension
We already have a CoordCache of insets dimensions. It is not necessary
to store the same information in two places.

Give a name to CoordCache tables types to improve code readability.

Remove ParagraphMetrics::singleWidth, which is not used anymore.
2015-10-19 13:17:16 +02:00
Guillaume Munch
f4f68a5764 Add cursor<->row correspondance tracking for tables and subcaptions.
Please use the new function otexstream.append(str, texrow) to append an
odocstringstream with texrow information to the output when outputing to a
string buffer (e.g. case of subcaptions).
2015-10-19 06:55:18 +01:00
Guillaume Munch
73d3816e0f Improve the TexRow Cursor->Row algorithm for selections.
Selections were incorrect after the addition of math due to the invalidation of
an invariant.
2015-10-19 06:55:18 +01:00
Guillaume Munch
c51ebd9bbc Remove a deep copy of MathData in lyx::write
This deep copy used to mess with the unique identifier: what TexRow saw was
different from the original uid. There may also be performance improvements.

(Using Georg's suggestion)
2015-10-19 06:55:18 +01:00
Guillaume Munch
789745df7a TexRow info in source panel and gotoCursor() for debugging
These features are active in DEVEL_VERSION when Debug is set to LATEX.

1. The TexRow information is prepended to the source panel.

2. Clicking on any line in the source triggers reverse search. (This would be an
interesting feature to implement on the user side, but we need a proper LFUN.)
2015-10-19 06:55:17 +01:00
Guillaume Munch
460a764b7f Adding TexRow information on math latex output (#4725)
WriteStream is now built from an otexstream instead of an odocstream, and
therefore counts lines in a TexRow. Calls to TexRow are added in relevant places
in math insets.

This finishes adding line tracking for math in the source panel and for forward
search.
2015-10-19 06:55:17 +01:00
Guillaume Munch
65d61e7a27 Add math cell positions to TexRow
This is preliminary work for extending the cursor<->row tracking to math.

TexRow used to associate, to each row, a location id/pos where id determines a
paragraph and pos the position in the paragraph.

TexRow now associates to each row a list of entries, text or math. A math is a
pair uid/idx where uid will determine a math inset and idx is the number of the
cell.

The analogy id/pos<->inset/idx works better than the analogy id/pos<->idx/pos,
because what matters for the TexRow algorithm(TM) is the behaviour in terms of
line breaks.

This only improves the source view and the forward search, not the error report
and the reverse search (though this could be easily added now).
2015-10-19 06:55:17 +01:00
Guillaume Munch
e2d7a4534a Add a unique id to math insets
The id is just the memory address.

The status bar now spits out the math inset uid information when in a math cell
in DEVEL_VERSION, like it already does when in a paragraph.

This is preliminary work for extending the cursor<->row tracking to math.
2015-10-19 06:55:17 +01:00
Guillaume Munch
44e022ad74 Splitting otexstream into otexrowstream and otexstream.
otexstream used to count lines to build a TexRow, and some other things. The new
class otexrowstream has the line counting feature of the previous otexstream
without other stuff. otexstream is now a subclass of otexrowstream that has the
same features as before.

This is preliminary work for extending the cursor<->row tracking to math.
2015-10-19 06:55:17 +01:00
Uwe Stöhr
ce933b1e14 colored-boxes.lyx: new example file for the tcolorbox.module
- also improve the tcolorbox.module

This is a fileformat change - only to be able to revert the new styles defined in the module.
2015-10-19 07:10:09 +02:00
Georg Baum
86325e50d0 Fix language end command
The code that sets open_polyglossia_lang_ is not only executed for polyglossia,
but also for babel, so we have to use the correct language end command.
2015-10-18 20:57:21 +02:00
Georg Baum
1b9f51519e Remove confusing parentheses 2015-10-18 15:26:12 +02:00
Georg Baum
b70f2eff49 Fix regression of 359aef92f8
The context menu did no longer work for some insets, since it requires the
cursor to be in front, and editXY() is also used to determine the inset for
the context menu. Now the cursor is corrected if needed.
2015-10-18 15:26:12 +02:00
Georg Baum
79f11f4e7d Fix std::string docstream output error
This was made visible by aab1b145a5, since xhtml export for
lib/doc/Additional.lyx caused an exception. However, the cause for this was
already present earlier: All attempts to output a std::string to an
odocstream resulted in trying to change the encoding of the stream instead,
since there is no operator<<(odocstream &, std::string) defined, and an
implicit conversion to SetEnc happened instead.
This is fixed by making the SetEnc constructor explicit and adjusting all
code parts that did not compile anymore after that. The parts of the code
that did use the wrong output operator were the std::string version of
htmlize() from output_xhtml.cpp and all changed parts in the other .cpp files.
I also removed the std::string versions of html::htmlize() and
html::cleanAttr(), since it was difficult to see which encodings were used
with these. Now we are always explcit when using html::cleanAttr() and
html::htmlize().
2015-10-15 20:52:28 +02:00
Jean-Marc Lasgouttes
44acd4a3cb Remove variable y_top that was computed but not used. 2015-10-12 11:55:38 +02:00
Stephan Witt
b6b263b9fc Correct early return position for if use_pixmap_cache_ check 2015-10-12 08:00:24 +02:00
Georg Baum
359aef92f8 Fix cursor movement for large logos (#9628)
Previously, if one clicked onto a large non-editable inset like the new LyX
logo inset, the cursor was always positioned in front of the inset, even if
the click was almost at the back edge. Now the cursor is positioned at the
correct edge. I tested this also with RTL contents, where from means right
and back means left, but the inset anchor position anchor point is still
at the left, and the right edge is dim.wid pixels to the right of it.
2015-10-11 14:21:45 +02:00
Georg Baum
15a5e0f793 Disable assigment operator
Forgot that in cea2d71e64
2015-10-11 12:04:43 +02:00
Georg Baum
cea2d71e64 Comply with rule-of-three
The rule-of-three says that if any of virtual destructor, copy constructor
or assignment operator needs to be manually implemented, then all three
should be implemented. Otherwise you can get subtle bugs which can be
difficult to find. In the changed classes, changing a copy-construction to
an assignment would have had surprising effects. Now they all behave
consistently.
2015-10-11 11:16:09 +02:00
Georg Baum
74be166499 Move comment where it belongs 2015-10-11 10:27:16 +02:00
Georg Baum
34bfad7f64 Remove C-style casts found by cppcheck 2015-10-10 21:44:08 +02:00
Georg Baum
fd5cfc5101 Fix LASSERT correction
Found bx cppcheck:
(style) Assignment of function parameter has no effect outside the function.
2015-10-10 21:38:17 +02:00
Georg Baum
d3b5260f45 Remove unused variables
Found by cppcheck: (style) Unused variable: x
2015-10-10 21:28:28 +02:00
Georg Baum
60e594a0f7 Fix duplicated pointer check
Found by cppcheck: (style) Same expression on both sides of '&&'.
2015-10-10 21:23:52 +02:00
Georg Baum
adfeb9637f Fix copy-paste leftover
Found by cppcheck: (style) Same expression on both sides of '&&'.
I deduced the correct if-condition from the other places where theLaTeXFonts()
is called.
2015-10-10 21:15:55 +02:00
Georg Baum
8a047a4112 Add missing intializations
These were found by cppcheck:
Member variable 'x' is not initialized in the constructor.
The crash #9788 would not have happened if this had been done earlier.
2015-10-10 21:04:28 +02:00
Georg Baum
96f64ac028 Fix multicolumn regression (bug #9788)
The test case did show several problems:
- The alignment argument was not parsed correctly if it was not in braces
- There one column too much created, since I did not take into account that
  the current cell must bge replaced by the multicolumn cell
- If the last line of an array contained only an empty multicolumn cell, then
  the complete multicolumn was swallowed
- The decision whether to output the column separator & was sometimes wrong
  for multicolumns
2015-10-10 18:58:18 +02:00
Georg Baum
8a6fad9cea Initialize member
This fixes the crash of bug #9788. However, the misparsing of \multicolumn
is still there: LyX thinks that the array has three columns, it inserts an
additional one before the multicolumn.
2015-10-09 23:15:54 +02:00
Georg Baum
3602baa40c Fix typo
Found by gcc: operation on 'preview_ptr' may be undefined [-Wsequence-point]
2015-10-09 21:37:43 +02:00
Jean-Marc Lasgouttes
e5f42f67d0 Fix display of perenthesis in Hebrew documents
This was a regression from 2.1.x. I failed to copy the horrible hack that was present for the special case of () in Hebrew.

There is a real need for someone who understands RTL language stuff to fix this. Currently () are wrong in .lyx files IMO. We should not have to swap them for display.
2015-10-09 16:16:13 +02:00
Jean-Marc Lasgouttes
eb9250ff2c Small code cleanup 2015-10-09 15:48:59 +02:00
Jean-Marc Lasgouttes
e24f782eeb Get rid of old Bidi code
This removes the old implementation of Cursor::getSurroundingPos, that has been superceded in commit .

As this was the last user of the Bidi class, this can be removed too.
2015-10-09 15:17:34 +02:00
Stephan Witt
989c72530e Avoid the use of a static NSAutoreleasePool.
This seems to cause crashes on exit from time to time.
2015-10-09 08:16:24 +02:00
Stephan Witt
d5f7ed38fc Add missing adjustment of end_pos if given length exceeds last pos 2015-10-09 08:16:23 +02:00
Stephan Witt
77cc2c7c8c Fix "dead store" warnings of Xcode analyze tool 2015-10-09 08:16:23 +02:00
Georg Baum
c3cdd9aea7 Fix cppcheck portability warning
(portability) Assigning a pointer to an integer is not portable.
2015-10-08 20:25:11 +02:00
Jean-Marc Lasgouttes
1514087389 Revise commit 7a5eff56
Courtesy of the whitespace police.
2015-10-07 11:30:04 +02:00
Pavel Sanda
7a5eff56b0 Set minimal width of fixedwidth collapsable insets.
Intention behind this is actually Box inset being too tiny
to reasonably contain other insets like ERT.

http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg188987.html
2015-10-07 02:15:35 -07:00
Guillaume Munch
68be651e89 Add TOC of external materials. (#7790, partial)
Known issues (non-regressions):

* The TOC is not updated immediately after an external material inset is
  inserted. See TocBackend::updateItem().
2015-10-05 21:16:16 +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 Lasgouttes
f6c6416f28 Remove PainterInfo argument to checkCursorScrollOffset
This will allow later to move its invokation to processUpdateFlags.

Also, remove wrong use of Update::SinglePar flag.
2015-10-05 18:09:34 +02:00
Jean-Marc Lasgouttes
d377e765a2 More updates to painting analysis 2015-10-04 22:28:36 +02:00
Enrico Forestieri
8a909b0fa3 Fix #9726: Preview does not have correct font size 2015-10-03 18:13:20 +02:00
Enrico Forestieri
82fe5183ca Fix #9490: SIGSEGV involving LyX macros --- A reproducible MWE (part II) 2015-10-03 17:41:25 +02:00
Guillaume Munch
8ea62f226b Amend d5a5fbb8e (cosmetic)
Bug #9579
2015-10-02 19:47:46 +01:00
Jean-Marc Lasgouttes
ca3e4e1494 Small BufferView cleanup
Rename fitCursor() to needsFitCursor() to show that it does not do any
action. Constify.

Update a few comments.
2015-10-02 15:25:09 +02:00
Guillaume Munch
39343d65af Fix compilation with MSVC in c++98 mode 2015-10-01 21:51:08 +01:00
Guillaume Munch
afed7d06fa Improvements to cursor highlighting in the source panel
* TexRow now computes rows from a DocIterator. In practice, the cursor
  highlighting is now correct inside insets, it is no longer restricted to the
  topmost level. It certainly also makes forward-search more precise.

* Added the option to disable a texrow when not needed, for perf.

* Fixed a bug where the last paragraph was not properly highlighted.

Limitations:

* TexRow still does not handle: math (e.g. multi-cell), sub-captions, inset
  arguments.
2015-10-01 21:51:08 +01:00
Guillaume Munch
d5a5fbb8ee Enhancements and bugfixes to the TOCs
* New TOC "math-macro". This means that math macros can now be accessed in the
  outline pane in their order of appearance or in alphabetical order, and can be
  searched using the filter.

* Lists of floats now show subfloats deeper in the navigation menu

* The arbitrary 30 element cut-off after which nothing is shown except "Open
  Navigator..." is removed. Menus now have no limit in size, so Qt may display
  them scrollable. In exchange, we always show "Open outliner..." at the
  beginning. I tested for performance issues with a rather complex document and
  it is fine; but this does not exclude corner cases with lots of TOC entries of
  a certain kind. If necessary, populating the navigation sub-menu should be
  delayed like the main menu.

* Elements that do not contribute to the output (e.g. in a note, a disabled
  branch) are now preceded with a symbol indicating this status. (The machinery
  was already there; I wonder why it was not implemented already.) I have chosen
  U+274E NEGATIVE SQUARED CROSS MARK.

* Fix the contextual menus in the outliner (bug introduced at 94e992c5).

* Toc item now move to the caption when present, but first center on the float,
  to prevent the situation where the caption is at the top of the screen and the
  contents of the float is off-screen above the caption.
  (Internally, the action of the toc items can now be customised)

* Fix the LyXHTML output. Disabled captions no longer appear in the list of
  figures.
2015-10-01 21:44:22 +01:00
Guillaume Munch
89342f2946 Fix bugs #6078 and #9364
Remove unwanted clearSelection()s in MathData::updateMacros(). These calls broke
text selection with keyboard and mouse, search-and-replace, restoring selection
after Undo, etc. in a document with math macros since 1.6.0. (Regression at
6aa54673 and 12314897)

I do not know the purpose of these calls, but the selection code has been worked
on since, and I cannot produce undesired behaviour after removing
them.
2015-09-28 04:22:06 +01:00
Jean-Marc Lasgouttes
21c30a09e1 Rewrite Cursor::getSurroundingPos without Bidi class
New method TextMetrics::findRowElement, excerpted from CursorX.

Reimplement getSurroundingPos using Row information. This is easy when
the cursor is inside a row element. At row element edges, different
situations can occur; hopefully all these situations are taken into
account.

Rename the old getSurroundingPos to getSurroundingPosOrig and
transform getSurroundingPos into a wrapper that compares the two
methods. This will be removed when we are confident that the new
function is equivalent to the old one.

It will then be possible to remove also the Bidi class (at last!).
2015-09-27 22:17:46 +02:00