Commit Graph

25639 Commits

Author SHA1 Message Date
Günter Milde
197735747e Support for documents in other scripts with parts in CJK scripts.
Fix CJK support for documents using input-encoding "utf8-cjk"
when the main language is not Chinese, Korean, or Japanese.
2019-01-24 00:40:51 +01:00
Richard Kimberly Heck
7f8cfde2e7 Add spaces. Thanks, Kornel. 2019-01-19 22:05:47 -05:00
Richard Kimberly Heck
b804e8851c Rename emergency file when it is kept.
Otherwise, we will ask about it again next time, when the file
may have changed. Also, if we crash again, we'll over-write that
file, which we may not want to do.

See bug #11464.
2019-01-17 23:00:23 -05:00
Jean-Marc Lasgouttes
66a3d64346 Try to compute row height like it should be done
Currently, our computation of row height is not completely standard:
* we ignore completely the QFontMetrics::leading() parameter

* we add arbitrarily 2 hardcoded pixels to the height.

This patch reverses these two choices, which leads to
* slightly larger spacing for MinionPro (which has a big leading).

* an additional spacing of 20% font height that depends on dpi and zoom.

Visual inspection with LibreOffice seems to imply that it disregards
the font leading but uses a interline which is 20% larger than the
font height.
2019-01-16 11:04:53 +01:00
Jean-Marc Lasgouttes
7848d3c90c Allow to type a space in front of another one
This is a follow-up to 714b731e. This fixes the issue when the cursor
is in front of a space
  abc| def
and one inserts another space (to start a word). DEPM would eat one
space and produce
  abc |def
instead of
  abc | def

Additionally, fix the same_par boolean, wheich did not take the cell
index into account.

Related to ticket #11412.
2019-01-14 16:41:12 +01:00
Juergen Spitzmueller
cd6229ee5c Fix copy-paste error 2019-01-13 11:38:28 +01:00
Juergen Spitzmueller
143703f927 Amend 7b639d2db2
Not the (ASCII) encoding matters here, but the (TU) font encoding.
2019-01-13 11:25:17 +01:00
Juergen Spitzmueller
7b639d2db2 Script wrapper is needed with ASCII encoding 2019-01-12 18:45:41 +01:00
Enrico Forestieri
ad0c9a548b Remove PYTHONPATH from the environment on Windows
This make sure to use the the modules distributed with LyX,
avoiding reconfigure failures.
2019-01-12 18:37:41 +01:00
Enrico Forestieri
472bdf5910 Replace environment variables in PATH prefix
The PATH prefix modified through the GUI was set without
replacing embedded environment variables. This might have
caused problems on Windows with external python installations.
2019-01-11 18:15:40 +01:00
Juergen Spitzmueller
ead498f0a6 Add support for U+2693 (ANCHOR)
Fixes: #10706
2019-01-11 16:42:08 +01:00
Jean-Marc Lasgouttes
edb46d2a94 Fix alignment of rows when text width is variable
When several lines of text are in the same variable-width tabular
cell, it is not possible to align properly the rows until the cell
width is known.

Therefore a parameter is added to redoParagraph to skip this
computation, so that it can be done later in TextMetrics::metrics.
Other calls to redoParagraph in the code are not affected. It is not
clear at this point whether they may create artefacts.

computeRowMetrics has been renamed to setRowAlignment to better
reflect its use.

Fixes bug #11447.
2019-01-11 16:23:05 +01:00
Juergen Spitzmueller
f6a77d5d82 "Script chars" also need to be output as macro with full utf8 engines and TeX fonts
Fixes rest of #9681
2019-01-11 10:08:49 +01:00
Richard Kimberly Heck
6848dbfd2b Remove empty file discovered by Kornel.
Looks like an accidental commit.

> git log GuiGraphicsUi.h
commit a1cec91afa
Author: André Pönitz <poenitz@gmx.net>
Date:   Fri Aug 31 05:53:55 2007 +0000

    move our stuff off the Q* namespace

    git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19935 a592a061-630c-0410-9148-cb99ea01b6c8

That's all a rename, basically. The original file, QGraphicsUi.h, was commited at 12e5a52b92, and it was empty then, too.
2019-01-10 13:23:33 -05:00
Günter Milde
41055bab88 Fix handling of Thai tis620-0 input encoding.
The Thai tis620-0 input encoding is supported via the inputenc "plug in"
(data) file tis620.def from https://ctan.org/pkg/babel-thai.

We can handle it like the other contributed input encodings, e.g.,
Greek (ISO 8859-7) and the several Cyrillic encodings from
http://www.ctan.org/pkg/latex-cyrillic.

Under TeXLive 2018, the input encoding defaults to utf8, if there is no call to
inputenc. The added test file fails without the patch but compiles fine, if the
file "tis620.def" is present in the TEXPATH.
2019-01-09 09:23:16 +01:00
Juergen Spitzmueller
9982651fd6 CJKutf8 is only to be used with the dedicated utf8-cjk encoding 2019-01-09 08:29:41 +01:00
Juergen Spitzmueller
52371c969b Improve readability
No functional change.
2019-01-07 17:02:06 +01:00
Jean-Marc Lasgouttes
4bc8e90c25 use range-based for loops 2019-01-07 15:33:45 +01:00
Juergen Spitzmueller
9d20bc4e98 When using polyglossia (bidi), paragraph directions don't need to be swapped
Bidi does that.

Fixes: #11399
2019-01-07 13:54:23 +01:00
Richard Kimberly Heck
d6b4db1a4f Remove now unused routine. 2019-01-06 17:50:14 -05:00
Richard Kimberly Heck
c4fdab6993 Use combo box data rather than looking up info from InsetRef. 2019-01-06 17:46:40 -05:00
Richard Kimberly Heck
b35d90014e Add comment. 2019-01-06 13:02:40 -05:00
Richard Kimberly Heck
b91e2b9998 Remove debugging code. 2019-01-06 13:00:21 -05:00
Richard Kimberly Heck
9b3f9cc687 Fix problem caused by re-ordering of menu at 5f6332bf4.
This broke the activation and de-activation of plural, capitalize,
etc. I guess that tells us how much those get used....
2019-01-06 12:52:44 -05:00
Juergen Spitzmueller
c9dd349bee Don't output CJK environment with non-TeX fonts
This amends d193cd05a8.
2019-01-06 16:40:36 +01:00
Juergen Spitzmueller
d193cd05a8 Properly implement CJKutf8
If we use that, the document actually needs to be in utf8 encoding, and
the CJK environment needs to account for it.

Candidate for stable.
2019-01-06 14:36:11 +01:00
Enrico Forestieri
7296e0e6ba Avoid crash with gzipped file
In computing the length of the extension, the code does not account
for the prefix "unzipped_", which is added when the zipped filename
does not have one of the extensions "gz", "z", "Z", or "svgz", and
thus the used index is out of bounds. See also this thread:
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg207360.html
2019-01-05 19:17:37 +01:00
Jean-Marc Lasgouttes
5fc035f99c Fixup 5c1d65af: proper spacing between text and label in rtl
Fix bug #11425.
2019-01-04 17:13:10 +01:00
Jean-Marc Lasgouttes
5c1d65afee Fix drawing of labels in insets
In many cases, the origin xo_ of insets was forgotten.

Fixes bug #11425.
2019-01-04 17:06:49 +01:00
Jean-Marc Lasgouttes
a69e01d0b4 Avoid crash when using inset-select-all in tabular
When changing cell idx, it is important to set the pit to a reasonable
value.
2019-01-04 13:57:13 +01:00
Jean-Marc Lasgouttes
f97c11f4e9 Remove unused mathod (CursorSlice::at_cell_end is the same) 2019-01-04 13:55:57 +01:00
Juergen Spitzmueller
35534231d4 Always update bibfiles cache with bibliography environment before opening citation dialog
We need to do this unconditionally, since there is no (trivial and non-
awkward) way to update it when the bibliography paragraphs are modified.

Fixes: #4899
2019-01-04 13:01:03 +01:00
Richard Kimberly Heck
ba8cf1a50b Also pay attention to OutputParams::free_spacing. 2019-01-03 19:16:48 -05:00
Richard Kimberly Heck
6135824f40 Fix bug #11432.
Take account of Layout::free_spacing.
2019-01-03 19:13:43 -05:00
Jean-Marc Lasgouttes
d8498d4785 Fix vertical offset of fonts like MinionPro
For some reason, adding a LTR/RTL Override unicode character before a
MinionPro string increases the ascent of the line.

This creates vertical offset issues when painting if the ascent used
as reference is the one of the font. Use the QTextLine ascent instead
for better results.

This is a followup to 1bed76e2a.

Fixes (reopened) ticket #11284.
2019-01-03 12:19:47 +01:00
Juergen Spitzmueller
62f8b8beb9 Update tex2lyx tests 2019-01-03 12:00:23 +01:00
Jean-Marc Lasgouttes
c8f4b68423 Add override statements to please clang
Eventually, all overridden virtual methods should be marked properly.
Currently, clang only warns about those in classes that already use
override in at least one place (which was the case dor GuiApplication).
2019-01-02 18:49:23 +01:00
Jean-Marc Lasgouttes
fba9f5b9e8 Remove premature (and bad) optimization
When blinking the caret, it looks like a cool idea to only update the
small rectangle containing the caret. Actually it is an awful idea, since
the paint event will paint some rows, and these rows will not be
properly painted outside of the small rectangle. Unfortunately, the
painter will skip those "painted" rows on next paint events.

This leads to painting errors that depend on the ordering of "real"
and "caret" paint events. This is the reason why they only appeared
with split screens.

Quote of the day: ``The real problem is that programmers have spent far
too much time worrying about efficiency in the wrong places and at the
wrong times; premature optimization is the root of all evil (or at
least most of it) in programming.''
-- Donald Knuth, The Art of Computer Programming.

Fixes bug #11354.
2019-01-02 18:36:02 +01:00
Enrico Forestieri
9755371729 Fix conversion of math braces to html 2019-01-02 09:49:59 +01:00
Juergen Spitzmueller
8f332f4429 Fix Include dialog UI
#11443
2019-01-02 09:19:45 +01:00
Enrico Forestieri
b3cba2a09c Amend [2dcb7300/lyxgit]
Avoid a crash by checking that a cell is not empty before
accessing its content.
2019-01-02 09:08:39 +01:00
Juergen Spitzmueller
1db5abbfbd Mark labels in non-outputting insets as inactive.
Fixes: #11437
2018-12-31 18:32:38 +01:00
Juergen Spitzmueller
e61c60fae8 Add inactive labels to the toc
It makes sense to navigate to them.

They are marked as inactive with the cross.
2018-12-31 18:30:20 +01:00
Juergen Spitzmueller
54366c38ef Fix gotoLabel with inactive labels
This now frist looks for the active label. Only if none is found, it
jumps to the (first) inactive label.
2018-12-31 18:28:44 +01:00
Juergen Spitzmueller
5afacb144d Separate LabelCache from RefCache
We only assign references to label _string_. Which inset this corresponds
to will be decided in context.
2018-12-31 18:27:34 +01:00
Juergen Spitzmueller
48c6d5de21 typo 2018-12-31 14:19:06 +01:00
Juergen Spitzmueller
5cfd256974 When checking inset activity status, also check containing insets
which could be deteled
2018-12-30 18:27:28 +01:00
Juergen Spitzmueller
e8c1cb5074 Expand comment 2018-12-30 13:24:51 +01:00
José Matos
8663a371f3 Merge branch 'master' of git.lyx.org:lyx 2018-12-29 19:24:59 +00:00
José Matos
3f03f0a447 Move all python shebangs from /usr/bin/env to python3.
The change is only relevant to development as all the call to python scripts is done
calling C++ os::python that invoques the appropriate python version.

The change is two fold, on one hand remove all the uses of /usr/bin/env for python.

On the other hand rename all the calls to python from python to python3 making it explicit
and being compliant with PEP 394 -- The "python" Command on Unix-Like Systems:
https://www.python.org/dev/peps/pep-0394/

Remove the sheebang from src/graphics/GraphicsConverter.cpp because it is not necessary.

Some small whitespace changes.
2018-12-29 19:14:41 +00:00
Enrico Forestieri
69726b832b Fix bug #4269
Call gunzip with quoted filenames as they may contain spaces or
other special characters.
2018-12-29 20:11:56 +01:00
Juergen Spitzmueller
c457ea90e7 micro amendments 2018-12-29 17:53:21 +01:00
Pavel Sanda
33284ee5c8 Completion popup menu did not respond to Esc.
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg207346.html
2018-12-29 14:36:38 +01:00
Juergen Spitzmueller
da273a944f Fix some parsing glitches in Autonest and IsAutonestedBy
Layouts can have spaces, underlines (that must be read as spaces, and
be enquoted)

Candidate for stable
2018-12-29 13:36:39 +01:00
Juergen Spitzmueller
59d73f52b8 Do not auto-insert separator for keepempty layouts
Candidate for stable
2018-12-29 13:35:39 +01:00
Juergen Spitzmueller
a67c541d6b Fixup LocalLayout ui after [3847e0ef/lyxgit] 2018-12-29 11:47:37 +01:00
Juergen Spitzmueller
a550a613e8 Some minor amendments to [3ae6bff538/lyxgit] 2018-12-29 10:26:28 +01:00
Juergen Spitzmueller
3ae6bff538 Do not consider deleted labels in ambiguity check
This adds a new (boolean) parameter "active" to the label cache, where
we track whether a label is deleted in ct mode (the same could be done,
if wanted, for labels in notes and inactive branches).

Deleted (inactive) labels are neither considered in the uniqueness check
nor added to the outliner. This also means that undeleted references to
deleted labels are now (correctly) marked as BROKEN.

Fixes: #6563
2018-12-29 10:08:02 +01:00
Richard Kimberly Heck
ac3693c04f Fix bug #11422.
We need to load the master document before applying the params, since
otherwise the TOC reset (and other things) happen before the master
has been loaded (and set as parent).
2018-12-29 00:23:26 -05:00
Juergen Spitzmueller
254affa0b9 Fix regression introduced in a65f1e54dc 2018-12-28 17:25:53 +01:00
Scott Kostyshak
c5301a6495 Fix assertion when checking if change in selection
The check for the iterator being in the same paragraph as the end of
selection was incorrect, because paragraphs in different cells could
have the same pit. We now additionally condition on having the same
idx.

This commit amends d1279875 (and thus 23de5e5e).

For discussion, see:

  https://www.mail-archive.com/search?l=mid&q=a5afd0c01a0eb9a84fd4d050d15eb23016d6f38a.camel%40lyx.org

Thanks to Jürgen.
2018-12-28 10:46:30 -05:00
Juergen Spitzmueller
a65f1e54dc Properly set up paste and textstyle-apply MenuButtons when no buffer is open. 2018-12-28 14:34:14 +01:00
Juergen Spitzmueller
4d010d97fa style 2018-12-28 12:44:55 +01:00
Juergen Spitzmueller
d50e02d07c Always set main Icon Button to the QMenuButton 2018-12-28 12:41:19 +01:00
Juergen Spitzmueller
cb84f752f2 Add tabular-features set-inner-lines and fix set-all-lines behavior
Patch by Daniel Ramöller (racoon)

Fixes: #11382
2018-12-28 10:11:42 +01:00
Juergen Spitzmueller
2f9876a410 LFUN_TEXTSTYLE_UPDATE: Do not force any unspecified settings.
Fixes: #11111 (yay!)
2018-12-27 15:30:57 +01:00
Juergen Spitzmueller
e704cc6e82 Add "Reset to Default" item to textstyle-apply button menu
Fixes: #5922.
2018-12-27 14:16:38 +01:00
Juergen Spitzmueller
2d876f8d9d Disable LFUN_FONT_DEFAULT if there's noting to reset. 2018-12-27 14:16:00 +01:00
Juergen Spitzmueller
c57d04908f No need for an extra icon 2018-12-27 11:18:13 +01:00
Juergen Spitzmueller
eb1b88aba7 Use more convenient MenuButtonPopup 2018-12-27 11:09:52 +01:00
Juergen Spitzmueller
01872b4dd5 Remove unused variable 2018-12-27 08:51:17 +01:00
Kornel Benko
9ee515c984 Amend 154b4fde 2018-12-26 17:45:34 +01:00
Juergen Spitzmueller
9495ff665d Make "paste recent" accessible from toolbar
via button menu
2018-12-26 17:11:24 +01:00
Juergen Spitzmueller
154b4fdece Give textstyle-apply a history
The last 20 applications are saved now and accessible both via the lfun
(textstyle-apply n) and the toolbar (via button menu)

Fixes: #7133

This also changes the default icon and toolbar position of the action,
as requested in #11427
2018-12-26 15:46:14 +01:00
Juergen Spitzmueller
057d83d8ae Handle null pointer 2018-12-26 14:38:02 +01:00
Juergen Spitzmueller
0492239be0 Fix qt4 build 2018-12-25 18:35:52 +01:00
Juergen Spitzmueller
7610179bc7 More alignment fixes 2018-12-25 18:20:02 +01:00
Juergen Spitzmueller
47ecd75d7f Unify group box style across dialogs. 2018-12-25 17:02:18 +01:00
Juergen Spitzmueller
7674a83ce9 Prefs dialog: some layout fixes. 2018-12-24 18:38:23 +01:00
Juergen Spitzmueller
e52bd7bb00 Advanced F&R layout fixed
Patch by Daniel Ramöller (racoon)
2018-12-24 17:02:11 +01:00
Juergen Spitzmueller
5258cee93e Fix height of paragraph dialog
Patch by Daniel Ramöller (racoon)
2018-12-24 16:48:22 +01:00
Juergen Spitzmueller
fa5703196f Fix Text Properties dialog height
Patch by Daniel Ramöller (racoon)
2018-12-24 16:18:54 +01:00
Juergen Spitzmueller
9ee4a914da Tabular Create layout fixes
Patch by Daniel Ramöller (racoon)
2018-12-24 16:13:29 +01:00
Juergen Spitzmueller
499871d141 Messages panes layout fixes
Patch by Daniel Ramöller (racoon)
2018-12-24 16:08:39 +01:00
Juergen Spitzmueller
30d527895e Layout fixes for compare dialog
Based on a patch by racoon.
2018-12-24 16:00:43 +01:00
Juergen Spitzmueller
4c7b3fc109 Theasurus dialog layout fixes
Patch by Daniel Ramöller (racoon)
2018-12-24 15:24:03 +01:00
Juergen Spitzmueller
5936edfe24 Spellchecker dialog alignment fixes
Patch by Daniel Ramöller (racoon)
2018-12-24 15:16:28 +01:00
Juergen Spitzmueller
d2527038a3 Polishment of the simple Search dialog
Based on a patch by racoon.
2018-12-24 14:47:48 +01:00
Juergen Spitzmueller
4d51206585 When cancelling saving of a children, cancel the whole process.
Fixes remainder of #11405
2018-12-24 13:02:41 +01:00
Juergen Spitzmueller
4f67cf2344 Fix prefs color layout
the list widget is too narrow with some localizations.
2018-12-23 12:08:54 +01:00
Juergen Spitzmueller
81e4f8dfb6 Allow to restore default UI colors in prefs
Patch by Daniel Ramöller (racoon), with slight modifications of mine.

Fixes: #10062
2018-12-22 18:44:58 +01:00
Jean-Marc Lasgouttes
dff0c5729e Make DEPM respect current cursor position.
Spaces are now conserved when they surround current cursor. Examples:
  abc   |   def
becomes
  abc | def
after DEPM and
  abc |
is kept as it is.

Fixes ticket #11412.
2018-12-21 15:40:03 +01:00
Juergen Spitzmueller
7c31bfa423 Compile fix for Qt < 5.7
Only after that version, the QAction argument is optional.
2018-12-21 13:37:07 +01:00
Juergen Spitzmueller
4ea64ca89a GuiThesaurus: maintain default state of Replace button
Rest of #11417
2018-12-21 12:56:02 +01:00
Juergen Spitzmueller
ac8aac5b36 GuiCharacter: Add menu to Restore button
and allow for resetting all widgets to "No Change" besides "Default"
2018-12-21 12:31:25 +01:00
Juergen Spitzmueller
e6b562d027 Rename ambiguous enum 2018-12-21 12:14:11 +01:00
Juergen Spitzmueller
7fae26c9a7 Handle GuiParagraph for OK default button issue as well 2018-12-20 15:12:53 +01:00
Juergen Spitzmueller
44a0748ba3 Add forgotten initialization 2018-12-20 13:46:41 +01:00
Juergen Spitzmueller
e087722900 Maintain default status for all dialogs using ButtonController
Should fix rest of #11417
2018-12-20 12:56:30 +01:00
Juergen Spitzmueller
33344c6015 Also check for dirty children on QUIT
Fixes rest of #11405
2018-12-20 11:37:19 +01:00
Pavel Sanda
99bfe20120 Properly clean cache which binds inset and dialog.
We fill up edited insets into cache when editing inset is triggered, but
this cache is never cleared up for dialogs unassociated with some inset
- thus when e.g. graphics dialog is open for completely new image the
old cache is (wrongly) used.

https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg207192.html
2018-12-19 21:31:26 +01:00
Juergen Spitzmueller
af5909beac Maintain default status for InsetParams dialogs
Part of #11417
2018-12-19 11:39:04 +01:00
Juergen Spitzmueller
6dce63496d Maintain default status for ref dialog
Part of #11417
2018-12-19 11:09:32 +01:00
Enrico Forestieri
2dcb730026 Fix bug 11346
Enclose in braces an optional argument of a math macro when it
starts with an incomplete script inset or ends with a delimiter
size-modifier macro.
2018-12-18 11:39:21 +01:00
Kornel Benko
187b518648 FindAdv: to please cppcheck ...
Initialize class elements
Removed unused method
Added 'explicit' keyword
Optimize handling for sizes ( \tiny, \small, etc)
2018-12-18 06:53:58 +01:00
Jean-Marc Lasgouttes
058c6750ac Fix embarrassing typo
Not clear whether this caused any bug.
2018-12-17 15:33:47 +01:00
Juergen Spitzmueller
6d4a63d86b Add Qt-internal GUI string 2018-12-17 13:39:45 +01:00
Juergen Spitzmueller
5f03889609 GuiCharacter: Add "Reset" and "Restore Defaults" buttons
Addresses #11415
2018-12-17 12:59:40 +01:00
Juergen Spitzmueller
1b6ce0e827 GuiCharacter: INHERIT is OFF for the tristate buttons. 2018-12-17 10:38:05 +01:00
Kornel Benko
a1a7c21871 FindAdv: Amend 4276e1b0 2018-12-17 10:33:23 +01:00
Juergen Spitzmueller
bf2bf2eaed GuiCharacter: Consider default settings for underline, strikeout and language 2018-12-17 10:12:02 +01:00
Juergen Spitzmueller
f87218bbb5 Check for hidden dirty child on close
Fixes: #11405
2018-12-17 09:11:34 +01:00
Juergen Spitzmueller
ab5c08b3f0 Amend 9705b88251 2018-12-17 09:03:46 +01:00
Kornel Benko
4276e1b01e FindAdv: Handle also sizes of characters 2018-12-16 14:50:38 +01:00
Juergen Spitzmueller
a48f28dc19 Improve comment. 2018-12-16 12:30:48 +01:00
Juergen Spitzmueller
9705b88251 Use current_font, not real_current_font, in character dialog
The latter has the workarea font settings, which are not of interest
here.

Fixes: #11385
2018-12-16 12:29:15 +01:00
Kornel Benko
2682170556 FindAdv: Comments 2018-12-14 19:51:24 +01:00
Richard Kimberly Heck
f3558213e1 Comment. 2018-12-14 10:58:13 -05:00
Richard Kimberly Heck
577746ad92 Fix slowness problem on Windows reported on the list.
https://marc.info/?l=lyx-devel&m=154458979925296&w=2

This is related to the fix for #9158 and the caching of bibfile
information. On Windows, it is incredibly slow to run kpsewhich,
which we do to check where files actually are, so as to get info
about them (e.g., timestamps). So we have started to cache that
as a map. The map is supposed to be invalidated when various
things happen, but an oversight was causing it to be invalidated
on every cut operation. This is because cutting uses a temporary
Buffer, and the operations on it were affecting the *global* cache
of biblio file info. (It makes sense to have a global cache, since
these files are not document-specific.) Basically, we have to update
the list of bibfiles in that temporary Buffer---but that is one of
the things that invalidated the cache. The solution is only to
invalidate the cache if the list of bibfiles has actually changed
(a sensible idea anyway). The only time that will happen in the
temporary Buffer is when the copied information contains a BibTeX
inset. That should be fairly rare.
2018-12-14 10:55:16 -05:00
Enrico Forestieri
4c9df62c6c Fix bug #9622
The backslash is the escape character used in our parser. Hence,
when used as a path separator on Windows, it has to be itself
escaped or the path enclosed in either double or single quotes.
Windows users are maybe trained to quote paths containing spaces
but not paths with backslashes. So, we automatically escape the
backslashes when they are not already enclosed in quotes.
2018-12-14 11:41:16 +01:00
Enrico Forestieri
95bc273a59 Fix display of single-char macro names
Essentially, all characters are allowed in single-char macro names.

Part of #11158.
2018-12-13 19:41:56 +01:00
Kornel Benko
358626b735 FindAdv: Add handling spaces, dots, quotes ...
Treate spaces, dots and quotes as ordinary characters
Also discard length values for hspace,vspace and mspace
2018-12-13 17:12:57 +01:00
Jean-Marc Lasgouttes
2ec25c8eef Set buffer correctly when changing math space type.
Fixes bug #7747.
2018-12-13 10:27:20 +01:00
Kornel Benko
8a29bdb3d1 FindAdv: Added code, href, url and footnote to handled search formats
Remark: Inside code{} and footnote{} are the language settings ignored.
2018-12-11 17:27:50 +01:00
Pavel Sanda
9547e0b765 typo 2018-12-08 00:04:04 +01:00
Pavel Sanda
04fe818b22 Keep permissions of the saved files intact.
Previously the permission were destroyed by the newly created
temporary file -- which is later used as new saved file.
Tested on symlinks as well but only on Linux.
2018-12-07 23:10:46 +01:00
Kornel Benko
32c6724fd6 FindAdv: Amend cd941804
Revert changes in Paragraph.cpp
2018-12-06 14:20:43 +01:00
Enrico Forestieri
976e0b7993 Amend bd21aa9
Check whether a line is actually blank rather than whether
we are at the beginning of a line.
2018-12-06 10:30:58 +01:00
Kornel Benko
cd94180492 FindAdv: Simplify search for chars '&', '%', '#' and '_'
This is not possible for '$', because of the latex-meaning to
start/end math inset.
Therefore, if not ignoring format, we still have to use
[\\][\$] in regex in order to find '$' in text.
2018-12-05 13:36:43 +01:00
Guillaume MM
131f4b92ba Fix segfault after deleting monitor
The boost signal was sent synchronously, and so made the Qt signal to be posted
in FileMonitor::changed after the boost signal returned, so after the sender was
possibly destroyed.

The solution is to make the boost signal asynchronous using the Qt event loop.

Thanks to Scott Kostyshak for the report and MWE.
2018-12-04 00:05:01 -05:00
Enrico Forestieri
bd21aa99d2 Fix bug #11398
When deciding how to strike out deleted math in change-tracking
mode, differentiate only on begin-of-line or not, and not on
after-paragraph-break or not.

The assumption that a new paragraph is always started after a
float seems to be not true and was causing this bug.
2018-12-02 18:27:38 +01:00
Pavel Sanda
1047754228 Update after buffer-anonymize in branch.
This is not strictly necessary in master (compared to 2.3.x),
but JMarc wanted it anyway.
2018-12-02 02:24:04 +01:00
Kornel Benko
de4ca7b742 FindAdv: Use plain text as value for \index{}
If we are in search mode, there is no need for
any special handling.
2018-11-29 11:57:11 +01:00
Kornel Benko
1cd80ff6c8 FindAdv: Eliminate a corner case in the binary search
Given the regex 'r.*r\b' and a string
"abc regular something cursor currently"
we expect to find "regular something cursor".
But while searching we may be confronted with input
"regular something cursor curr"
and so the searched string would be seen longer.
2018-11-27 19:10:27 +01:00
Kornel Benko
8549fbb326 FindAdv: Avoid crash finding char at end of inset
Testcase without this patch:
1.) open de/Additional.lyx
2.) goto 6.1 Astronomy & Astrophysics
3.) open the index
4.) find advaced
	a.) not ignoring format
	b.) regex = .+
	c.) language of regex: English
	4.) search next
The seach finds the next break (which is outside of the index)
The following try to display the selection leads to crash
2018-11-26 12:37:18 +01:00
Kornel Benko
578a4b6fb0 find: This change was not intended, amend e96a9d6329 2018-11-25 18:25:14 +01:00
Kornel Benko
e96a9d6329 Find: Use greedy behaviour
This change is valid for findadv too.
Patterns like '.*' now are greedy, like it is normal in regex
Searching for whole words is corrected, but can be slow.
One can speed up the search with adapted pattern.
So for instance searching for words starting and ending with 'r'
the normal pattern is 'r.*r'. The speed-up pattern could be
'\br[^\s]*r\b'. This halves the search time.

Search results are now different to that of lyx2.3, because the greedy
'.*' is now really greedy.
To achive the same results, we have to use '.*?' instead.
2018-11-25 17:51:20 +01:00
Jean-Marc Lasgouttes
e2a3dd1167 Fix compilation with msvc 2015
Without this, the compiler does not know whether 0 is a size_t or char
const *.
2018-11-24 19:17:31 +01:00
Jean-Marc Lasgouttes
57feb0fed0 Fix undo after breaking a nested paragraph
We have to take into account that Buffer::updateBuffer can modify the document.

Fix bug #11292.
2018-11-23 16:53:53 +01:00
Jean-Marc Lasgouttes
2dc84b69d5 Show cursor correctly whn loading file
This is a fixup to 8d8988de4. When a file is loaded and the cursor is
set, it is required to first compute metrics to be able to scroll the
screen correctly.

Fixes bug #11377.
2018-11-22 11:21:07 +01:00
Kornel Benko
e9e3c50c65 FindAdv: Optimization
A try to decrement the number of tests for a match.

Also a try to handle Hebrew documents. Unfortunatelly
the latex output is missing the language specification
(only the change of encoding is available there).
I failed to find a proper place to add the lang.
That means, searching for e.g. English text in Hebrew documents
is not satisfying.
2018-11-20 14:36:11 +01:00
Kornel Benko
17ee4cafb1 FindAdv: Enable search for different languages in Korean documents too
The problem here was that for european languages only the encoding
was visible in latex output. Now also the language is provided.
2018-11-18 10:40:42 +01:00
Enrico Forestieri
7822d11361 Fix reloading of local layout file (bug #11120) 2018-11-16 21:47:24 +01:00
Kornel Benko
0964ffb266 FindAdv: Remove left over comment character
Sometimes language spec starts with "% ". This happens in Japaneese documents
containig English text at start of paragraph.
2018-11-16 12:12:06 +01:00
Kornel Benko
06c05430d9 FindAdv: Added lyx-function search-ignore
Enable/disable ignoring the specified type
	language: e.g. british, slovak, latin, ...
	color:	blue, red, ...
	sectioning: part, chapter, ..
	font:
		series: bold, ...
		shape: upright, italic, slanted
		family: serif, monospace ...
	markup: enphasize, noun
	underline:
	strike:

Examples:
	search-ignore language true
	search-ignore shape true
2018-11-15 14:20:50 +01:00
Kornel Benko
702c495e98 FindAdv: Significantly increase the search speed
The needed time to find a simple string dependes on the
paragraph length was O(n^2)
Now it is down to O(n).
Before:
	To determine if the pattern matches we compared the
	paragraph from current position to the its end.
	Increment current position if no match
Now:
	Check if the character at current position has at least
	the needed features (text, color, language etc)
	If not, Increment current position
	else proceed as before
2018-11-13 12:11:33 +01:00
Enrico Forestieri
1bdba953a5 Fix cursor left/right navigation in overset, underset, and stackrel
Before this commit, navigating with the cursor was visiting either
the nucleus or the script depending on the direction (left or right)
of the cursor movement. Now the 2.3.x behavior of always going through
the nucleus is restored (at least for overset and underset, as stackrel
seems to behave oddly also in 2.3.x).
2018-11-12 19:05:09 +01:00
Kornel Benko
636bb6c2d9 FindAdv: Polishing search with regex containing '.'
Also added missing math env alignat
Modified handling of longtable/tabular
Added a routine to count for valid chars. This is needed
for detection of word boundaries.

Due to detection conflicts
	regex '.*' vs match of word-boundaries in MatchStringAdv::operator()
we need to use '\b' in regex explicitly. E.g. '\b.*\b'

The backward search works, but
1.) only in current paragraph (this is the same as before)
2.) only in the same language environment.
2018-11-12 12:28:31 +01:00
Jean-Marc Lasgouttes
1ff0816a02 Typo 2018-11-12 11:41:54 +01:00
Enrico Forestieri
9c3bbeefab Fix bug #11367
The overset, underset, and stackrel insets behave like the script
rather than the fraction inset.
2018-11-10 15:50:51 +01:00
Enrico Forestieri
77234fecd8 Restore correct left/right navigation in root inset
Now all cells are correctly visited in sequence when moving with
cursor left/right.
2018-11-10 14:55:00 +01:00
Jean-Marc Lasgouttes
93db2bd08e Make cell-forward/backward cycle in math
Make cell-backward put the cursor at the end of cell when using
mac-like cursor movement.
2018-11-09 16:05:09 +00:00
Jean-Marc Lasgouttes
ee9451aaf5 improve left/right navigation in root inset
Now the cursor is correctly set when changing cell with xursor left/right.
2018-11-09 16:05:09 +00:00
Jean-Marc Lasgouttes
7055bb0098 Change IgnoreFormats to a proper class
Instantiate a global variabble holding the formats and allow to modify
it using the helper function setIgnoreFormat.
2018-11-09 16:05:09 +00:00
Kornel Benko
f5d5777a86 FindAdv: Polishing
1.) Added \textmd to be ignored (sometimes it is used and sometimes not)
2.) Typo: multiline --> multline. Searching in 'multline' caused a crash
	because processing all of the '{' and '}' in the content of this math
	exceeded the size of the interval field.
2018-11-09 13:49:05 +01:00
Juergen Spitzmueller
523d284729 missed this. 2018-11-09 11:47:51 +01:00
Juergen Spitzmueller
a5004a394a Fix thinko
Actually use the replaced path string :-/
2018-11-09 11:28:38 +01:00
Kornel Benko
0c05432284 FindAdv: Polishing
1.) Handle some unclosed parentheses
	Sometimes \shortcut is not correctly closed
2.) Added \ldots as known char
3.) Discard some shapes (circlepar, droppar, ...)
4.) Omit resulting empty string and use some value
	which cannot be matched instead
2018-11-08 09:59:51 +01:00
Jean-Marc Lasgouttes
2daf493cbc Fixup 097da3a9: fix horizontal navigatiion in InsetMathRoot
Exchanging cells 0 and 1 requires to implement idxBackWard/Forward.
2018-11-07 11:53:00 -10:00
Jean-Marc Lasgouttes
974766cd1c Fixup 097da3a9: update the math parser
One has to account for the change in cell numbering.
2018-11-07 08:29:46 -10:00
Kornel Benko
88428123ea FindAdv: Optimize for long matches
Still, if the matched string is at a rear part of a very long
paragraph, the search is way too slow.
2018-11-07 13:14:50 +01:00
Jean-Marc Lasgouttes
b0937fb93e When inserting math inset over selection, place cursor better
This is a follow up to 503c7c16.

The new argument for placing cursor after insertion of inset is:
* if inset has no cell, do nothing
* otherwise, place inset in entry cell.
  + if entry cell is not empty (we pasted a selection), go to next cell
  + if this next cell does not exit, stay after the inset.
2018-11-06 22:48:53 -10:00
Jean-Marc Lasgouttes
097da3a943 Change cell numbers so that 0 is the main cell
This leads to code simplification in overset, root and underset.
Further simplification is possible.
2018-11-06 22:48:53 -10:00
Kornel Benko
9d304c0a1d FindAdv: Discard table decorations
That way we do not match the whole table but only the cell contents.
The problem I had was
1.) Document language Spanish
2.) Table (copied from English doc) => language English
3.) All cell contents Spanish

Now search for English text led to a selection of the whole
table, although there was no English content in any cell.
2018-11-07 09:35:16 +01:00
Kornel Benko
4f1cd00b02 Findadv: Initialize the position of first unprocessed open parentheses
Not initializing caused some wrong matches.
2018-11-06 15:28:43 +01:00
Kornel Benko
e487274ff4 Findadv: Polishing
1.) Do not remove '{}' unconditionally from \item parameter
2.) Do not output last empty entry
2018-11-05 12:58:45 +01:00
Jean-Marc Lasgouttes
7db99672e6 Avoid extra space in tooltips
When using QTextDocument to check the natutal size of a text, one has
to remove the text margin, which is not useful here.

Fixes bug #11353.
2018-11-04 14:02:42 -10:00
Kornel Benko
70e2f09c4f Findadv: Some glitches found while searching for English text in fr/UserGuide.lyx
Ignore \index
Handle \og and \bg as characters
Remove space in empty list-item (description or labeling)
2018-11-04 21:41:04 +01:00
Kornel Benko
aa68dcefa0 Findadv: 'Optimized' detection of matched string
This is clearly a hack, because I don't understand why the
previous code did not work.
2018-11-04 14:57:40 +01:00
Jean-Marc Lasgouttes
1bed76e2a1 Fix selection of unmarked RtL text
With Qt 5.11 at least, RtL text will be drawn RtL even when the
(undocumented) flag Qt::TextForceLeftToRight is applied to the
QTextLayout object. This creates selection issues for Hebrew text
marked as English.

The solution is to do the same as in breakAt_helper, that is prepend
the string with a direction override unicode character.

Doing this requires to introduce a TEXTLAYOUT_OFFSET constant that has
to be used wisely to account for this extra character.

Fixes bug #11284.
2018-11-04 08:23:49 +00:00
Jean-Marc Lasgouttes
76e99e9a20 Remove old workaround that is not needed anymore
This causes a compilation error with boost 1.69.

Fixes bug #11349.
2018-11-04 08:23:49 +00:00
Kornel Benko
5c2f29d024 findadv: Output language chage in ANY case, if outputting for search
Without this, the first \item entry in a list does not specify the language
in latex output. But we need it if we do not ignore language in search.
2018-11-03 15:05:38 +01:00
Kornel Benko
e6418431dd Findadv: Handle the problem with list environments
The problem was, that the different list ennvironments
did not look different in tha latex output used for
search.
So the input of "\item ..." did not give information
if it is description, lyxlist, enumeration or labeling.

In search modus we use now "\item{enumeration}" etc.
2018-11-03 11:15:12 +01:00
Kornel Benko
5c83ad37d0 Findadv: Use '\n' as delimiter for end of data with same features
This allows to use '.' in regex without matching also wrong data.

Also added modified patch from ajd (see #11241).
2018-11-02 10:32:28 +01:00
Kornel Benko
5af8ec3240 Findadv: Allow multiple math statements in a line 2018-10-30 20:54:32 +01:00
Juergen Spitzmueller
b8932afed5 Dispay pre- and posttext widgets if non-empty also if unapplied
Fixes: #11352
2018-10-30 17:23:08 +01:00
Juergen Spitzmueller
0ec295d63e Fix parentheses with Hebrew
Patch by Guy Rutenberg, with some changes of mine.

Fixes: #11191
2018-10-30 12:33:35 +01:00
Kornel Benko
f0d7432608 Findadv: Remaining findadv tests pass now
Exception: findadv-21, but it is not a regression,
because this one never passed.
The problem here is, that we cannot differentiate
between enumeration, itemize, description and labeling
environment here.
2018-10-29 13:17:54 +01:00
Kornel Benko
aecd98dc46 Findadv: Adapt search for special chars '[', ']', '%' and '#' 2018-10-29 07:37:32 +01:00
Kornel Benko
2d477c5e0a Changes to match math equations
Now tests findadv-01 ... findadv-20 pass too.

keytest.py: Expanded time for controll keys (like \[Return])
findadv*: expanded time for normal keys
lyxfind.cpp: Handle math equations
2018-10-28 19:40:14 +01:00
Scott Kostyshak
645d42f451 Revert "Comment out unused functions to restore -Werror"
This reverts commit bceb2390b4.

For details, see:

https://www.mail-archive.com/search?l=mid&q=4724814.5HqUF52VLN%40amd64
2018-10-28 11:43:47 -04:00
Scott Kostyshak
bceb2390b4 Comment out unused functions to restore -Werror
This commit restores compilation with -Werror and g++ version 7.3.0.

Consistent with 6dc450bc.
2018-10-27 20:59:26 -04:00
Kornel Benko
0f72179a07 Amend(4) 74c849d Advanced search with format
Prepare for use with func request. For instance to
ignore language while searching:
	setIgnoreFormat("language", true);
2018-10-27 16:57:42 +02:00
Stephan Witt
d470477ab0 Add dummy implementation for Messages::getIfFound (used when ENABLE_NLS is false) 2018-10-27 16:12:02 +02:00
Kornel Benko
0b3f644469 Amend(3) 74c849d Advanced search with format
* Discard now unneeded code
* Remove macro '\uldepth=...'
2018-10-24 11:07:11 +02:00
Kornel Benko
2dd522472a Amend(2) 74c849d Advanced search with format
Added missing handling for chapter/chapter*
Also added frontmatter (title, author etc), but disabled ATM
2018-10-23 21:12:22 +02:00
Kornel Benko
ff9c32b382 Amend 74c849d, Advanced search with format
Remove macros like '\tiny ' or '\tiny{}' or '\tiny' followed by
any other non-alpha char correctly
2018-10-23 20:03:50 +02:00
Scott Kostyshak
73b1c658a2 Use underline in (+ bold) for char match in layout
When showing the match characters in, e.g., the layout box, we now
underline (in addition to bold) the matched characters. This makes
the matched characters stand out even more.

See 4b716dd6 and the following ML thread:

  https://www.mail-archive.com/search?l=mid&q=20181019155649.dqqk6u25wdcdimrj%40barna
2018-10-22 21:16:56 -04:00
Kornel Benko
74c849d651 Advanced search with format, preparing for selective searching
As it is now, searching with format needs ALL the features set
in order to match the pattern.
What needs to be done is a GUI specifying which of the features are
important.
1.) language
2.) font (series, shape)
3.) markup, underline, strikeout
4.) color
Having this info, the implementation is easy. Set
some variables and be done
2018-10-22 20:19:36 +02:00
Jean-Marc Lasgouttes
9e7832915f Amend 8d8988de: it is too early for skipping the updateMacros call 2018-10-22 15:29:56 +02:00
Kornel Benko
140f843690 Advanced search with format, consider also sectioning macros 2018-10-20 12:47:37 +02:00
Kornel Benko
0be01de61f Advanced search with format, refactoring 2018-10-19 19:11:20 +02:00
Kornel Benko
6dc450bc46 Commented out an unused function to please a picky compiler 2018-10-19 11:10:54 +02:00
Jean-Marc Lasgouttes
557c2f2bf0 Compilation fix (with qt4 at least). 2018-10-19 10:02:02 +02:00
Richard Kimberly Heck
4b716dd63d Use bold instead of underlining to mark the characters we're matching. 2018-10-18 21:49:31 -04:00
Richard Kimberly Heck
1410eeb10e Simplify the code that adds underlining to the layout combo. 2018-10-18 21:49:31 -04:00
Richard Kimberly Heck
1cc859d713 Refactor 2018-10-18 21:49:31 -04:00
Richard Kimberly Heck
35fac4ab51 Re-organize and simplify now. 2018-10-18 21:49:31 -04:00
Richard Kimberly Heck
ae65fb2c98 Whitespace. 2018-10-18 21:49:31 -04:00
Richard Kimberly Heck
d7f4346a19 Fix bug #6096.
We used to need a hack to set the size of the layout combo, but
the code was changed in Qt 4.5 or so. Hence the appearance of this
bug in 2009. We can now just remove this hack, and all seems to
work correctly.
2018-10-18 21:49:31 -04:00