Commit Graph

185 Commits

Author SHA1 Message Date
Enrico Forestieri
2c9c4ee672 Some math font changing commands only work in math mode, so let's
assure to switch to math mode if needed. This helps avoiding latex
errors (see http://thread.gmane.org/gmane.editors.lyx.general/69580)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38579 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-04 00:29:36 +00:00
Vincent van Ravesteijn
49459f6fc4 Fix bug #7345: Crash when right clicking on displayed math with selection
Two things have been fixed here:
1) the selection should not be cleared when the user right clicks a math inset that is part of the selection,
2) the type of context menu should be determined at mouse-press, because that is the moment when the cursor is set. However, we should do it after setting the cursor, because setting the cursor might change the selection status and this influences the choice for the type of context menu.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37961 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-19 13:14:13 +00:00
Enrico Forestieri
6d425078a7 When an error occurs, don't highlight more than necessary.
Currently, if an inset outputs a newline, the new latex row is still
associated with a previous id/pos. Now, if a latex error occurs before
this newline, we would still highlight everything associated to that
id/pos, even if it is extraneous to the error.
This is avoided by associating the new latex row with the id/pos in
effect right before entering the inset. If an inset does not output
a newline, it is not excluded from the selection, consistent with the
fact that the text of the inset does appear in the error description.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37903 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-12 01:40:01 +00:00
Vincent van Ravesteijn
5036ca8500 Constify InsetMathNest::setMouseHover and remove the const_cast from BufferView.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37632 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-13 10:07:00 +00:00
Enrico Forestieri
d866717ef7 Integrate texrow with otexstream in order to perform automatic line
counting when exporting to latex. This is done for the code comprised
between \begin{document} and \end{document}, while the preamble code
still needs manual calls to TexRow::newline() for registering new lines.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37584 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-10 20:02:48 +00:00
Enrico Forestieri
1ef605f625 Introduce a wrapper class for odocstream to help ensuring that no
blank lines may be inadvertently output. This is achieved by using two
special iomanip-like variables (breakln and safebreakln) in the lyx::
namespace. When they are inserted in the stream, a newline is output
only if not already at the beginning of a line. The difference between
breakln and safebreakln is that, if needed, the former outputs '\n'
and the latter "%\n".
In future, the new class will also be used for counting the number of
newlines issued. Even if the infractrure for doing that is already in
place, the counting is essentially still done the old way.
There are still places in the code where the functionality of the
class could be used, most probably. ATM, it is used for InsetTabular,
InsetListings, InsetFloat, and InsetText.
The Comment and GreyedOut insets required a special treatment and a
new InsetLayout parameter (Display) has been introduced. The default
for Display is "true", meaning that the corresponding latex
environment is of "display" type, i.e., it stands on its own, whereas
"false" means that the contents appear inline with the text. The
latter is the case for both Comment and GreyedOut insets.
Mostly, the only visible effects on latex exports should be the
disappearing of some redundant % chars and the appearing/disappearing
of null {} latex groups after a comment or lyxgreyedout environments
(they are related to the presence or absence of a space immediately
after those environments), as well as the fact that math environments
are now started on their own lines.
As a last thing, only the latex code between \begin{document} and
\end{document} goes through the new class, the preamble being directly
output through odocstream, as usual.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37360 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-29 02:41:13 +00:00
Georg Baum
4736356bf9 fix remaining bits of bug #6709
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36718 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-04 16:43:41 +00:00
Georg Baum
c8ec2c0a03 Fix bug #7088
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36557 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-28 17:16:11 +00:00
Georg Baum
7edd656f21 Fix inserting subscript/superscript with nonempty selection by creating a dedicated lfun:
inset-insert simply swallows the selection, while box-insert, note-insert etc.
put the selection inside the new inset.
As a side effect the toolbar icons get better names, as requested by Uwe.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36451 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-23 20:09:08 +00:00
Vincent van Ravesteijn
aafe985042 Remove the now unused parameter of createDialogStr();
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35892 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-29 00:42:40 +00:00
Vincent van Ravesteijn
49beed7437 Fix bug #6989: Be somewhat more secure with the homebrew dynamic asserts that were changed in r35855.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35863 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-27 07:04:58 +00:00
Vincent van Ravesteijn
573500dd04 Remove unneccessary uses of dynamic_cast from the code.
A dynamic_cast is necessary when:

- the object to be casted is from an external library because we can't add Qxxx::asXxxx() to Qt e.g.:
    * QAbstractListModel to GuiIdListModel,
    * QValidator to PathValidator,
    * QWidget to TabWorkArea,
    * QWidget to GuiWorkArea;

- the object is to be casted from an interface to the implementing class, because the Interface does not know by whom it is implemented:
    * ProgressInterface to GuiProgress,
    * Application to GuiApplication.

A dynamic_cast can be replaced by:
  - already existing as***Inset() functions, e.g.:
    * asHullInset(),
    * asInsetMath()->asMacro(),
    * asInsetText();

  - a static_cast when we are sure this can't go wrong, e.g.:
    * we are sure that CellData::inset->clone() is an InsetTableCell,
    * in cases where we explicitly check it->lyxCode().


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35855 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-26 15:03:51 +00:00
Richard Heck
6a80ce62ca DispatchResult::update() ==> DispatchResult::screenUpdate()
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35631 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-13 17:28:55 +00:00
Pavel Sanda
65962da47b Add support for feyn package and Diagram inset.
Patch from Ronen Abravanel.
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg161952.html

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35455 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-19 22:12:06 +00:00
Richard Heck
5577e877bb Try to move all updateBuffer() calls to a central location. We now use
DispatchResult to store a flag that tells us whether we need a buffer
update or not. 

So: If you find a missing one, go to an appropriate place in the
dispatch and call cur.forceBufferUpdate() or, if you don't have a cursor
but do have a DispatchResult, call dr.forceBufferUpdate().

There is one remaining call I could not move, in
TextMetrics::redoParagraph. But this looks like an emergency call when
the macro context has not been set. There are also a couple calls that
are connected with buffer creation that I commented out, since the same
call is done again almost immediately. But I'm not positive about those.

Now the nice thing would be to do the same for updateMacros().


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34826 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-09 14:37:00 +00:00
Richard Heck
0e14f379f3 Rename a couple routines. This will avoid confusion with a forthcoming
patch.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34816 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-08 20:04:35 +00:00
Enrico Forestieri
7d4ca5033e Implement LFUN_UNICODE_INSERT in mathed.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34351 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-30 22:23:19 +00:00
Vincent van Ravesteijn
708b73cab7 Fix bug #3900: Mathed corners displayed without mouse hover.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34348 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-30 14:55:37 +00:00
Vincent van Ravesteijn
4c611e5745 Mouse hover property should be dependent on the specific bufferview. If there are 2 views showing the same buffer, an Inset can be shown as hovered in only one view.
This is also in preparation of a decent fix for bug #3900.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34347 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-30 14:47:46 +00:00
Vincent van Ravesteijn
108a67ed43 Make Cursor::anchor_ private and make an access function Cursor::realAnchor() to stress the fact that this is thus not the normalAnchor().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34146 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-15 18:16:07 +00:00
Richard Heck
b79d8e5e2d Make members of FuncRequest private, per the FIXME there. Again, this is
basically a massive renaming, with no real changes.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34106 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-09 19:00:42 +00:00
Richard Heck
4c7a5d0024 This is just a giant renaming of member variables in FuncRequest,
preparatory to making them private.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34105 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-09 18:15:17 +00:00
Vincent van Ravesteijn
5d60104a69 Whitespace.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33697 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-10 16:57:01 +00:00
Richard Heck
d65020b293 s/updateLabels/updateBuffer/g, per a suggestion of Abdel's.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33613 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-03 22:13:45 +00:00
Abdelrazak Younes
5d235f5251 Migrate GuiHSPace to InsetParamsDialog.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33525 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-21 09:28:33 +00:00
Abdelrazak Younes
b5049e769b * InsetTabular cleanup:
- proper message passing for all tabular features
- properly define which feature needs an argument

* replace LFUN_TABULAR_FEATURE with LFUN_INSET_MODIFY
- The math tables are also affected. In the future a common base class
between math and text table will solve this inconsistency.
- There is a hack in GuiApplication in order to not rename the toolbar
icons. This will have to be cleaned up with a general icon naming for
LFUN_INSET_MODIFY... to be discussed.

* Tabular Dialog:
- big cleanup, lots and lots of bug fixing here
- migrated to InsetParamsWidget


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33495 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-18 08:28:46 +00:00
Abdelrazak Younes
377cdd5f6c Transfer LyXfunc code to GuiApplication::dispatch() and getStatus(). Now
a lot of simplification is possible. Except some instability period...


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33389 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-09 16:11:13 +00:00
Vincent van Ravesteijn
489b80aef4 Correct the mess introduced in r33250.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33251 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-28 20:03:09 +00:00
Vincent van Ravesteijn
61eecb8a44 Expand the string "regexp" to something user will better be able to understand.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33250 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-28 19:56:12 +00:00
Jürgen Spitzmüller
7bbd67eb26 * Implement updateLabels in mathed and add the MathRef insets to the references cache.
This fixes bug #1560.

The diverse setBuffer / updateLabels calls need auditing. See FIXMEs.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33249 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-28 17:37:22 +00:00
Enrico Forestieri
c2befc2b1e Fix bug #6382: Wrong cursor placement when inserting math
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32473 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-11 01:30:33 +00:00
Abdelrazak Younes
ff4460603e Make Buffer argument mandatory in most of the InsetMath based class... boring work...
Math manual loads and save correctly it seems but expect some instability period.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31898 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-08 11:45:46 +00:00
Enrico Forestieri
a1a34443ef Fix bug #5530: LyX expansion in math-macro overwritten by default one.
This patch initializes the buffer_ member of a MathHull inset in most
(but not all) cases. The problems with buffer_ should be greatly
allievated now, but there still can be some corner case.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31873 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-06 15:18:48 +00:00
Pavel Sanda
4c338ac22d Fix bug #2045.
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg153796.html


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30997 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-12 22:09:50 +00:00
Jürgen Spitzmüller
89e7f60e1d Catch encoding exception when performing instant preview on an uncodable char (bug 6116).
* MathStream{.cpp, h}:
	- replace bool dryrun() by enum output that also knows whether the stream is for instant preview
* InsetMathHull.cpp:
	- tell the stream whether we use it for instant preview.
* MathString.cpp (write):
	- gracefully catch encoding exception for instant preview.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30895 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-07 05:25:22 +00:00
Jean-Marc Lasgouttes
ca7b18a5db Try to implement properly recursive setBuffer. Normally, implmenting
for InsetMathNest and InsetMathHull is enough.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30847 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-03 10:30:34 +00:00
Uwe Stöhr
802067ecdc support for matrix decoration in the MathMatrix dialog;
introduces a new LFUN and fixes #4620

This can in principle also go to branch when new LFUNs are there allowed, Jürgen?

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30523 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-12 21:39:21 +00:00
Enrico Forestieri
ce7302098c Allow undoing changes to the name of macros that are already finalized.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30434 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-09 18:00:27 +00:00
Enrico Forestieri
98fb455d3f Revert r30398, r30396, r30395, r30393, r30392, and r29387.
Soon to be replaced with a proper fix.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30409 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-08 01:41:06 +00:00
Vincent van Ravesteijn
1c6eea89b4 Fix previous commit for macros with arguments, again.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30398 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-07 08:23:31 +00:00
Vincent van Ravesteijn
ebe7913a47 Only allow the cursor to be in lastpos for macros as editing in macro-mode is only possible at lastpos.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30396 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-07 08:16:21 +00:00
Vincent van Ravesteijn
ebe9b42279 Fix crash when selecting part of a macro and trying to resume macro-mode editing.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30395 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-07 08:13:07 +00:00
Vincent van Ravesteijn
abdb069f9e Remove unneeded check for cur.pos() > 0.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30393 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-07 08:12:08 +00:00
Vincent van Ravesteijn
fb57c00c0d Fix bug #6015: Macro with arguments is not finished when pressing space
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30392 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-07 08:08:14 +00:00
Enrico Forestieri
0a90c42b86 Fix bugs #6047, #4043, and #5394.
6047: Lyx 1.6.3 unable to typeset the third chemical equation of the
      file mhchem.lyx (package mhchem)
4043: mhchem support
5394: support for the mhchems's \ce command
The \ce and \cf insets are text mode environments that allow entering
spaces and mathmode commands. LyX leaves them alone and doesn't try to
be smart, i.e., the behaviour is exactly the same we had in the old days
with text-in-math mode environments, before the introduction of the
\ensuremath and \lyxmathsym macros. This means that in those environments
one has to know what he is doing, as LyX will not offer any protection.
The hack of enclosing \ce and \cf in a \text{} environment in order to
be able to enter spaces is no longer necessary.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30338 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-03 00:05:58 +00:00
Enrico Forestieri
5415144621 Fix bug #6033: Initial character sometimes eaten by math-insert
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30246 a592a061-630c-0410-9148-cb99ea01b6c8
2009-06-23 18:01:31 +00:00
Vincent van Ravesteijn
1458ac6a7c Set flag for LFUN_MATH_MUTATE. Also, remove some 'ghost code' from InsetMathNest (if this had a purpose it should have been documented).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29764 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-21 12:45:31 +00:00
Enrico Forestieri
1a65f586ee Fix bug #1435. Now Ctrl-m enters math mode when in text-in-math mode,
instead of producing nested text boxes.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29746 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-20 14:52:03 +00:00
Vincent van Ravesteijn
193b36e71f Fix bug #5923: Resume macromode.
When the user wants to resume a macro, delete the current one and insert a new one, which is not yet finalized.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29687 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-15 22:04:41 +00:00
Vincent van Ravesteijn
7fc21bf766 Fix bug #2034: Inconsistent behavior of cursor inside mathed.
When closing the macromode, do the same trick as in lines 835--838.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29686 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-15 22:00:43 +00:00