Commit Graph

68 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
22cb573cac Allow line inset to draw a vertical line.
Qpainter::drawline cannot draw a line which is thicker than it is long.
Draw a rectangle instead.

Fix bug #12307.
2021-06-14 15:45:35 +02:00
Yuriy Skalko
ecf62a8f21 Refactor OutputParams
Now all Inset hierarchy uses OutputParams.h included in Inset.h.
Forward declare some enums to reduce header dependencies.
2020-11-30 13:05:03 +02:00
Stephan Witt
0fa4b7e736 #9376 prepare use of Length in lyxrc - move the class Length to support 2020-08-07 09:24:31 +02:00
Juergen Spitzmueller
11a57ce6c6 Fix header inclusions 2020-07-09 17:19:01 +02:00
Thibaut Cuvelier
3883b85f49 New DocBook support 2020-07-08 08:42:16 +02:00
Jean-Marc Lasgouttes
5d4e6dfb68 Run codespell on src/insets
Command was
codespell -w -i 3  -S Makefile.in -L mathed,afe,tthe,ue,fro,uint,larg,alph,te,thes,alle,Claus,pres,pass-thru  src/insets/
2020-06-25 23:46:16 +02:00
Thibaut Cuvelier
a6b07608d8 Rename XHTMLStream to XMLStream, move it to another file, and prepare for DocBook adoption.
xml.cpp/h also merges functionalities from sgml.cpp/h.
2020-06-15 13:01:56 +02:00
Jean-Marc Lasgouttes
d77b05db80 Move the inPixels(MetricsBase) help from Length to MetricsBase.
A basic class like Length should not depend on something from
frontend.

This change allows to remove several dummy implementations of
theFontMetrics().
2018-01-05 20:14:04 +01:00
Jean-Marc Lasgouttes
7f6f56f40a Get rid of Inset::setDimCache
This helper method is used to set the inset dimension cache at metrics
time. However this is already done by the metrics code itself
(MathRow::metrics, TextMetrics::redoParagraph), so that there is no
need to do this same work again in a different place.

Also, InsetPhantom::metrics is removed, since it does not do anything
interesting.

This commit comes with a mild risk attached (it might be that some of
these calls were useful after all!), but all of this is fixable.
2016-12-06 16:15:47 +01:00
Jean-Marc Lasgouttes
8aaec85c8c Now Inset::dimension is only an access to cache
Up to now Inset::dimension was either a helper function to access
CoordCache, or... something else. This created problems to properly
use it.

In particular, the definition of InsetText::dimension created problems
for child classes. Removing this definition (actually renaming it to
dimensionHelper) allows to streamline the code.
2016-12-06 09:52:17 +01:00
Guillaume Munch
670efa8f64 Rationalise includes
Modifying TexRow.h or texstream.h no longer triggers the recompilation of the
complete source tree.
2016-07-04 02:42:17 +02:00
Georg Baum
699a6db9fa Add some missing member variable initializations
These were all found by cppcheck. Even in constructors that are there "only
because of std containers" the class should be initialized correctly. You can
never know whether such an object does not get used, and then a nice crash
caused by dereferencing a NULL-pointer is better than undefined behaviour.
2015-09-13 19:47:21 +02:00
Jean-Marc Lasgouttes
463bd17d75 Use integer line thickness in painter
There is no need for real-valued line width in painters. Actually, this even leads to uneven dashes for continuous spell checker.

The new code is supposed to be equivalent to the old one, just more readable. From this, we can try to see whether some lines need to be made thicker on HiDPI screens.
2015-07-14 17:42:45 +02:00
Jean-Marc Lasgouttes
66fa801e74 Improve support for on screen length calculation
The computation of length on screen depend in particular of the computation of the size of an em. Many places of the code used to rely on the width of the M character, which is not really correct:
http://en.wikipedia.org/wiki/Em_%28typography%29

In digital typography, the best value to use is the point size of the font.

* Implement FontMetrics::em(), which returns the value in pixels of the EM unit.
 Convert code to use it.

* Introduce Length::inPixel(MetricsBase const &), which takes the textwidth and em information from the MetricsBase object. Convert code to use it.

* Fix several places where Length::inPixel is used without a proper em value.

* add mathed_font_em() helper function. It should eventually be removed like some other functions in MathSupport.

* Add dummy implementation of FontMetrics to tex2lyx for linking purposes.
2015-03-26 17:10:15 +01:00
Richard Heck
ecef54500d Introduce max_length parameter for plaintext() output routines,
so we can write a limited amount when using this for TOC and
tooltip output.

This should solve the problem with slowness that Kornel noticed,
which was caused by our trying to write an entire plaintext
bibliography every time we updated the TOC. We did that because
he had a bibliography inside a branch, and we use plaintext for
creating the tooltip that goes with the branch list.

Other related bugs were fixed along the way. E.g., it turns out
that, if someone had an InsetInclude inside a branch, then we would
have been writing a *plaintext file* for that inset every time we
updated the TOC. I wonder if some of the other reports of slowness
we have received might be due to this kind of issue?
2013-03-08 15:12:58 -05:00
Lars Gullik Bjønnes
76a5f726a7 InsetLine.cpp: add <cstdlib>
This fixes a problem introduced in bc51243587
2012-10-28 09:20:59 +01:00
Lars Gullik Bjønnes
bc51243587 insets/InsetLine.cpp: use std::abs
Use std::abs in stead of std::max(v, -v).
2012-10-27 01:25:39 +02:00
Uwe Stöhr
5ddd2174d5 InsetLine.cpp: fix bug #7851
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39984 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-25 23:22:55 +00:00
Richard Heck
461c973d62 Clean up XHTML output a bit.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38185 a592a061-630c-0410-9148-cb99ea01b6c8
2011-04-01 19:18:25 +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
Jean-Marc Lasgouttes
838af80834 Try to finally fix #6930. All the paths that did not come from context
menus were (intentionally) missing, and it turns out they were needed.

Normally all invocations of INSET_MODIFY should trigger a recordUndo now.
Of course all cases have not been tested, but it should be working.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36770 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-08 09:24:04 +00:00
Vincent van Ravesteijn
222b3580d2 More include frenzy.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35940 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-31 01:04:03 +00:00
Vincent van Ravesteijn
2bbf8e5f2d Remove InsetCommand::mailer_name_.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35893 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-29 00:46:21 +00:00
Vincent van Ravesteijn
c5b9664476 Remove the name parameter from string2params and params2string. We can always derive the name with insetName(params.code()).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35891 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-29 00:25:28 +00:00
Uwe Stöhr
92c8604313 InsetLine:
- honor Abdel as author
- reintroduce the /// spacers in the header file because it makes it better readable and we do this in all other inset header files

GuiLine: honor Abdel as author

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35417 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-17 01:28:08 +00:00
Abdelrazak Younes
17ab5f5a38 InsetLine: Fix vertical positioning, offset is really an offset from the
text baseline, not from the middle of the line.

We are now getting much closer to LateX drawing...


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35413 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-16 10:40:19 +00:00
Abdelrazak Younes
31c75d260e Remove uneeded hack.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35411 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-16 09:49:43 +00:00
Abdelrazak Younes
08453ceba4 Fix InsetLine painting for exotic offset and heigth.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35407 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-16 07:36:20 +00:00
Abdelrazak Younes
c01de9fd41 * add InsetLine::dimension() to avoid calling InsetCommand::dimension()
* InsetLine::draw() bit of code shuffling.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35384 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-15 12:43:07 +00:00
Abdelrazak Younes
15679c3e82 revert r35374 and further improve the metrics and drawing code.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35377 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-15 11:19:29 +00:00
Uwe Stöhr
573abee2b5 InsetLine.cpp: correct coding style
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35375 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-14 23:35:12 +00:00
Uwe Stöhr
e33e3dd815 InsetLine.cpp: restore the drawing routine after r35373, see http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg161800.html
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35374 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-14 23:24:57 +00:00
Abdelrazak Younes
d1f08cbc57 Fix InsetLine metrics and drawing.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35373 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-14 14:56:41 +00:00
Abdelrazak Younes
24ff65acc4 coding style and C++ fixes.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35370 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-14 13:42:09 +00:00
Pavel Sanda
2d8ee8973f Commit clash, Abdel just fixed it another way.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35318 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-07 13:43:10 +00:00
Pavel Sanda
01eb99ea4d Compilation fix for 'abs'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35317 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-07 13:40:03 +00:00
Abdelrazak Younes
0b7886a1a8 Gcc compile fix. abs is defined for float not int.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35316 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-07 13:37:22 +00:00
Pavel Sanda
d179943b8f Squash warning
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35305 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-07 11:00:01 +00:00
Uwe Stöhr
604a3341d9 InsetLine.cpp: remove unused include
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35300 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-07 00:49:00 +00:00
Uwe Stöhr
0e7ab29f49 InsetLine: support for the LaTeX command \rule; kick out the hardcoded \lyxline; fileformat change
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35299 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-07 00:41:00 +00:00
Uwe Stöhr
59d550f894 InsetLine.cpp: fix #6863: use text color also for lines within LyX
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35286 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-05 23:27:55 +00:00
Uwe Stöhr
bbafadcbf3 InsetLine.cpp: compile fix for r35283
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35285 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-05 17:18:23 +00:00
Uwe Stöhr
fab03729ab InsetLine.cpp: use text color also for lyxlines
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35191 a592a061-630c-0410-9148-cb99ea01b6c8
2010-08-25 01:59:14 +00:00
Uwe Stöhr
38ed6cd1a0 \lyxline is a LyX-specific macro that creates a line in the output
- this line is defined with a width of 1pt -> therefore also draw it in this size in lyx
- this line is by default black -> use black
- setting a color for this in the preferences is wrong and senseless, because the color of this line is defined by the color chosen in the text style dialog -> remove preference color

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35185 a592a061-630c-0410-9148-cb99ea01b6c8
2010-08-24 01:13:26 +00:00
Richard Heck
3e654186d2 Move the StartTag, EndTag, and CompTag classes into the html namespace.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33099 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-19 22:08:04 +00:00
Richard Heck
40fcb745a9 Restore XHTML output for InsetLine.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32207 a592a061-630c-0410-9148-cb99ea01b6c8
2009-11-25 22:07:17 +00:00
Richard Heck
67e70c6c02 Well, it turns out that we need a different return value for the xhtml
routines, one that allows us to "defer" certain material, e.g., a float
that ought to appear in a div but can't simply be put into the middle
of a paragraph.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30079 a592a061-630c-0410-9148-cb99ea01b6c8
2009-06-12 17:23:17 +00:00
Richard Heck
12f57a57bd The return value for xhtml() is not going to be needed.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30078 a592a061-630c-0410-9148-cb99ea01b6c8
2009-06-12 16:11:33 +00:00
Richard Heck
f61bebd7fb HTML output code for a handful of easy insets.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29951 a592a061-630c-0410-9148-cb99ea01b6c8
2009-06-05 17:48:14 +00:00