Commit Graph

35278 Commits

Author SHA1 Message Date
Guillaume Munch
c69426d7f5 TocWidget: fix an erroneous collapse and optimise updates based on profiling
TocModels::reset() in GuiView::structureChanged() collapses the TocWidget, and
therefore requires an update right after, which was missing.

In fact, profiling TocWidget::updateView() shows that delaying the update is
good only for fast keypresses (essentially movement). It costs 5% of a
char-forward operation in a document with approx. 100 table of contents
items. The update optimisation has been rewritten to take this data into
account.

This also fixes #9826: Outline disclosure of subsection content disappears one
second after doubleclicking content item.
2016-06-12 23:14:22 +01:00
Richard Heck
097b17f732 Restore last selected label when using the "go to label" feature
of the reference dialog.

(cherry picked from commit 9d5ffa8e75)
2016-06-10 18:28:37 -04:00
Richard Heck
28ab2a2776 Fix version number. 2016-06-03 17:45:42 -04:00
Jean-Marc Lasgouttes
07dcd0c4e9 Take inset dimension into account in row signature
In some cases, the insets may change height or width without changing
the other apsects of the row.

Fixes bug #6991 and #10182.

(cherry picked from commit 508518ad95)
2016-06-03 23:07:05 +02:00
Jean-Marc Lasgouttes
40f0659ec0 Fix drawing of buttonText (enforce same left/right spacing)
The computation of the width of the button was wrong. If <--> stands
for TEXT_TO_INSET_OFFSET/2 spacing, and if `[]' marks the button's
limits, then the intent is
  <-->[<-->button text<-->]<-->

Therefore the physical grey rectangle width is
   width - Inset::TEXT_TO_INSET_OFFSET

With this change, the spacing on the right of the button is not larger
than the left one.

Fixes bug #10147.
(cherry picked from commit 516d5d29dc)
2016-06-01 13:43:07 +02:00
Jean-Marc Lasgouttes
f97f849e5c Remove extra spacing around InsetCommand buttons
There is already a spacing of 2 pixels on each side of a button (e.g.
collapsed inset). There is no need to add one extra pixel for command
insets.

Fixes part of bug #10149.
(cherry picked from commit 68149e380d)
2016-06-01 13:34:05 +02:00
Juergen Spitzmueller
d5067bb36d Add forgotten fix to status 2016-05-31 08:51:46 +02:00
Juergen Spitzmueller
55f2cc2286 Implement some forgotten context menu items for arguments
* Dissolve context menu
* Label toggle (for conglomerate-styled arguments)

Fixes: #10150
2016-05-29 20:23:28 +02:00
Jean-Marc Lasgouttes
8f858a5785 \\pagebreak is a fragile command in general
As such, it shall be protected in moving arguments, such as sections.

Fixes bug #10092.
(cherry picked from commit 86ee2699c30b63e5b4de3ad725519756d17aec2c)
2016-05-13 18:05:00 +02:00
Jean-Marc Lasgouttes
fb5780d203 Fix getStatus for math-mutate and math-display
Those two functions used two different hackish and buggy
implementation to know when the function is disabled. Replace that by
asking the containing inset whether it accepts inserting display math
inset.

Fixes bug #10033.
(cherry picked from commit de5630a1562054cb969b106e35f84bfe1e99002a)
2016-05-12 18:02:24 +02:00
Jean-Marc Lasgouttes
2766857f01 Do not use 'u' flag for ar
The Reproducible Builds effort (https://wiki.debian.org/ReproducibleBuilds) in Debian (at least) means that 'ar' is built in deterministic mode as default: all timestamps are set to 0.

This is not compatible with the use of the 'u' flag, and therefore ARFLAGS has to be changed from 'cru' to 'cr'.

This gets rid of the harmless but annoying warning
  ar: `u' modifier ignored since `D' is the default (see `U')
(cherry picked from commit 987fc1d15d017c192a566fc922e3967d9d280668)
2016-05-11 18:14:29 +02:00
Jean-Marc Lasgouttes
67f77a07f0 Disable LFUN_INSET_DISSOLVE in tabulars
When in a tabular cell, "this" is just a lone InsetText, while cur.inset() is the whole tabular. This makes a big difference, especially when one wants to count cells.

Fixes bug #9954.

(cherry picked from commit 4caf167dbd24722421ae8d94a2c103bf41a7667d)
2016-05-10 18:10:47 +02:00
Jean-Marc Lasgouttes
7444b894f8 Rename InsetMathHull::isTable to allowsTabularFeatures
The old name conflicted with the newly introduced Inset::isTable.

Now the meaning is as follows.
* Inset::isTable() is true when the inset is composed of lines and columns
* InsetMathHull::allowsTabularFeatures is true when the current type of hull allows for tabular-like functions.

(cherry picked from commit db39dc7ccd4c2dd14ef20547e6e3c056ba030d83)
2016-05-09 11:15:17 +02:00
Jean-Marc Lasgouttes
1f2d7bf7e6 Make inset-select-all select all cells only in tables
inset-select-all has 3 levels
1. select current cell
2. select all cells
3. select inset from outside.

The second level makes sense for tables (text and math), but not for things like a math fraction.

Introduce a new method Inset::isTable() that allows to detect this case properly and skip level 2.

(cherry picked from commit 5de28b9ac6736c791146a1a3ebe7f4826c22a9b7)
2016-05-09 11:15:17 +02:00
Guillaume Munch
1a836459fb Show review toolbar when outputting changes
"Output changes" alters the preamble even in the absence of tracked
changes. Therefore, not being able to notice when it is activated can possibly
yield hard-to-debug compilation failures.
2016-05-06 02:07:34 +01:00
Guillaume Munch
bc40386a6e status.22x 2016-05-06 01:36:27 +01:00
Guillaume Munch
0e8a5be368 Disable certain change tracking commands when there are no changes
Fix TODO
2016-05-06 01:01:42 +01:00
Guillaume Munch
0988675353 GuiChanges: provide feedback when there are no more changes
Remove FIXMEs: date and time localisation
2016-05-06 01:01:42 +01:00
Guillaume Munch
c3acdb9c7c Automatically show the review toolbar if the document has tracked changes
(#8738)

For efficiency, we add a new flag to the buffer indicating when changes are
present. This flag is updated at each buffer update, and also when explicitly
requested via a dispatch result flag.
2016-05-06 01:01:42 +01:00
Guillaume Munch
23edd3a1a2 getInnerText() 2016-05-06 01:01:42 +01:00
Guillaume Munch
5bfdaef980 TocWidget: clean-up the timer logic
The timer logic introduced to solve bug #7138 was not entirely reliable; in
particular it resulted in spurious updates (noticeable by the treeview
collapsing just after one opens a branch, in particular).

This commit cleans up the timer logic. I followed the original design decision
of having an immediate update followed by a delayed update. Now the updates are
appropriately compressed and done after a delay of 2s (as can be noticed with
the treeview still collapsing, unfortunately, but after a more predictable
delay...).
2016-05-03 17:20:58 +01:00
Guillaume Munch
90c8b0697f TocWidget: Fix perf regression
4d1ad336 fixed #9754 but caused perf issues by cancelling the gains of having a
timer (introduced after #7138). This introduces in GuiToc::enableView() a
lightweight check of whether the widget should be updated. The logic is inspired
from GuiViewSource::enableView().
2016-05-03 17:20:58 +01:00
Guillaume Munch
5b976a5ebc Whitespace 2016-05-03 17:20:57 +01:00
Jean-Marc Lasgouttes
79be66bdf1 Let getPosNearX take horizontal scrolling into account
If we do not do that, it is not possible to position the cursor after
a long inset with the mouse.

To do this, it is necessary to add the pit information to the Row
object. This is a good idea in any case, and will allow to simplify
some code later on.

Fixes bug #10094.
(cherry picked from commit 8851645799ef67015e49fd75b9dfeed65d685e85)
2016-05-03 10:53:10 +02:00
Jean-Marc Lasgouttes
390adf75c5 Add missing entry in status.22x
This was forgotten in fe5e1170.
2016-05-01 00:18:10 +02:00
Guillaume Munch
a5e2024fc4 status.22x 2016-04-30 16:07:51 +01:00
Jean-Marc Lasgouttes
fe5e117038 Fix cursor position after redo
When document settings are modified, a command
  inset-forall Branch inset-toggle asign
is run to open as needed all branches. At the end of the said loop,
the cursor is reset to where it was. However, the cur_after undo
element member is not set because it already had a value.

To make this work as expected, it is necessary in LFUN_INSET_FORALL to
reset the cursor before ending the undo group and to insert a dummy
recordUndo call.

Fixes bug #10097.

(cherry picked from commit 0036762f30def16ab8b2216f721f9e552893bc85)
2016-04-29 18:00:53 +02:00
Guillaume Munch
044933b0d9 Improvements to the shortcuts preference dialog (#9174)
Ask the user for removing bindings when using the "restore" button (#9174).

Fix the already-bound-key detection logic.

Don't forget to trigger the search when initializing the search LineEdit with
its former value.
2016-04-29 00:04:10 +01:00
Jean-Marc Lasgouttes
c8e1c09236 Fix horizontal scrolling in full-width collapsable insets
While a one paragraph large collapsable inset (containing for example a tabular) could be very wide and trigger horizontal scrolling, the code that makes collapsable insets wide when they contain several paragraphs would actually make them narrower in this case.

Typical example is a wide tabular and a caption in a table float, where horizontal scrolling would not trigger.

(cherry picked from commit 8c7ace4b on 2.3.0-staging)
2016-04-22 15:31:40 +02:00
Richard Heck
74dd33e385 Updates to splitting of consecutive environments.
From Enrico.

(cherry picked from commit ee82dd604010d4c1bf250640a3df6d790ea08380)
2016-04-21 17:45:17 -04:00
Stephan Witt
24dfca3e2a Handle activateWindow in LFUN_BUFFER_SWITCH like in saveBufferIfNeeded() and doShowDialog() methods.
This is a requirement on Mac to get the current buffer view topmost after buffer switch.
2016-04-19 21:58:58 +02:00
Jean-Marc Lasgouttes
23ef2947a3 Change mouse cursor on tabular selection zones
This is done by implementing the clickable method. It is not possible yet to have the usual left and down arrows, because Qt does not implement them as far as I can see.

Factor the code that triggers row/column selection and fix the logic. Now it is possible to select also at the right of the tabular inset.
2016-04-19 13:50:09 +02:00
Jean-Marc Lasgouttes
6a1803e18d Fix display of InsetCollapsable with split views
When several bufferviews exist for the same inset, the data that depends on the view width have to be BufferView-dependent. While this is the case for several mutable members of InsetCollapsable, some were missing.

This commit makes button_dim_ (renamed from button_dim) and openinlined_ bv-dependent.

Get rid of the hitButton function.

Remove the bv-independent geometry() method and implement editable() explicitely instead.

Fixes bug #9756.
2016-04-19 12:02:27 +02:00
Jean-Marc Lasgouttes
fb90076e90 whitespace only 2016-04-19 11:58:57 +02:00
Jean-Marc Lasgouttes
6ad2edc381 Pass a BufferView to Inset::clickable 2016-04-19 11:58:41 +02:00
Jean-Marc Lasgouttes
0576973b8d Make monolithic build code portable to Mac OS
"echo -e" is definitely not portable. Use a plain loop instead.

Also use the automake silent rule mechanism to make the generation of monolithic source files visible.
2016-04-18 18:20:06 +02:00
Guillaume Munch
9f04fc1c90 status.22x 2016-04-17 15:36:58 +01:00
Guillaume Munch
9bf7d99def Sanitize InsetMathHull and add a check for mutability in LFUN_MATH_MUTATE
Remove in particular all comparisons < and >= involving HullType.

Add a guard to make sure that mutate() only operates on types it has been
designed for. Then I figured I could use this new knowledge to give feedback
when math-mutate is not implemented via getStatus(). (To test this, insert a
regexp in Advanced Search & Replace and try to change it into a standard
equation via the contextual menu.)
2016-04-17 15:25:49 +01:00
Guillaume Munch
e3ab552ccb Correct col spacing in Cases environment 2016-04-17 15:25:49 +01:00
Guillaume Munch
1adb4efe60 Fix the display of column spacing in AMS environments
AMS align environment should have some spacing between odd and even columns.

Add a new virtual method displayColSpace() to InsetMathGrid, InsetMathHull and
InsetMathSplit.
2016-04-17 15:25:49 +01:00
Guillaume Munch
06a62c4894 Display the correct horizontal alignment in AMS environments
A longstanding problem... (related: #1861)

The columns in AMS math environments have a fixed alignment (colAlign() in
InsetMathGrid.cpp). We set this alignment for display (Georg's
displayColAlign()) in InsetMathHull and InsetMathSplit. This is done according
to tests and documentation for the various environments.

There is also some mechanical code factoring via colAlign().

Finally, I disable setting the horizontal alignment in InsetMathSplit, which has
no impact on the LaTeX output, and has no longer any impact on the screen. (As
for vertical alignment I discovered that it was in fact customisable for
\aligned & friends! I hope that the more faithful interface will let other
users discover that too.)
2016-04-17 15:25:49 +01:00
Guillaume Munch
72ce4519de status.22x 2016-04-16 23:23:03 +01:00
Guillaume Munch
36611a9ba8 Raise the maxlastfiles cap
This only changes the maximum value that the user can choose in the UI, not the
default value.
2016-04-16 23:12:38 +01:00
Guillaume Munch
4fb103180e Do not omit the starting space when copying (#9995)
The offending code appears to have been introduced a long time ago. My
understanding is that it is no longer relevant. Notably, it only appears on copy
and not on cut, which tells us that: 1) it should be safe to remove it, 2) we
should remove it for consistency.
2016-04-16 23:12:30 +01:00
Scott Kostyshak
287db1239b Fix a \origin unavailable 2016-04-16 15:20:33 -04:00
jpc
3d5cae4edd Minor rephrasing of last commit 2016-04-16 09:15:42 +01:00
Uwe Stöhr
93f58cb440 sv.po: updates for 2.2.0 from Jim 2016-04-16 01:55:40 +02:00
Guillaume Munch
744f6e3cd8 Compute the highlighting color from AlternateBase and Highlight roles (#10073) 2016-04-15 14:13:50 +01:00
Stephan Witt
87c85303c5 Improved fix for #9966
* provide GuiApplication::typewriterSystemFont() to get a fixed font consistently
* enlarge fixed font on Mac because of the too small default Qt system font
* use it in source pane, progress view, log view and document preamble editor
2016-04-15 11:49:04 +02:00
Jean-Marc Lasgouttes
4807338ba9 Remove image spellcheck-continously.svgz
It is not a proper icon and is not used currently.
2016-04-15 09:21:44 +02:00