* src/frontends/qt4/GuiFontLoader.{cpp,h}
(GuiFontLoader::GuiFontLoader): don't store font IDs anymore,
as we are not going to clean up after ourselves.
(GuiFontLoader::~GuiFontLoader): make it virtual again and
do nothing (avoids a crash with fontconfig < 2.2.92).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20246 a592a061-630c-0410-9148-cb99ea01b6c8
* ParagraphMetrics::position_: new private member (and associated access method).
* TextMetrics:
- origin_: new screen position cache.
- use origin_ and ParagraphMetrics::position() instead of the parPos cache.
* Cursor:
- comment out buggy bruteFind() method, will work on that later.
* BufferView::updateMetrics(): refactor and simplify to use new cache and to gather everything SinglePar related.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20214 a592a061-630c-0410-9148-cb99ea01b6c8
- implement edit function that opens the inset's dialog.
* src/BufferView.cpp (doDispatch):
- call inset->edit (i.e. open dialog) for EDITABLE insets on next-inset-toggle (bug 2907)
* src/Text3.cpp (doDispatch: INDEX_INSERT):
- move inset->edit to where it belongs.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20193 a592a061-630c-0410-9148-cb99ea01b6c8
- don't judge possibility of configurable label string by the existence of such,
but rather by the margintype (bug 4127)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20189 a592a061-630c-0410-9148-cb99ea01b6c8
- Format incremented to 284
- LaTeX-package wrapfig is now used instead of flotflt for wrap floats (this allows us to implement now also a table wrap float)
(the optional overhang argument of wrapfig will be implemented later)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20185 a592a061-630c-0410-9148-cb99ea01b6c8
xft-fonts package is still required. However, on *nix there seem
to be no way to tell fontconfig to prefer our fonts instead of
others matching the requirements, so, in case of conflict, the
fontconfig files should be manually adjusted, or some existing
font package used (note that the quality of the bakoma fonts is
better than that of the xft ones). There is no such problem on
Windows where our private fonts are always preferred over the
installed ones (and I hope the same holds true for Mac).
* src/LyX.cpp
(LyX::exec): don't call addFontResources() and restoreFontResources()
anymore, as the frontend code will do the job.
* src/frontends/qt4/GuiFontLoader.{cpp,h}
(GuiFontLoader::GuiFontLoader): register math fonts with Qt.
(GuiFontLoader::~GuiFontLoader): unregister math fonts.
* src/support/os.h
* src/support/os_unix.cpp
* src/support/os_win32.cpp
* src/support/os_cygwin.cpp:
remove code dealing with fonts.
* configure.ac: don't check for fontconfig headers anymore.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20128 a592a061-630c-0410-9148-cb99ea01b6c8
* Text2.cpp (deleteEmptyParagraphMechanism):
* paragraph_func.cpp (breakParagraph): make sure that the start of
appendix marker is not lost when deleting or breaking a paragraph
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20121 a592a061-630c-0410-9148-cb99ea01b6c8
* Row:
- setSelection(): set selection begin and end for this row.
- sel_beg, sel_end: new public members.
* BufferView::draw()
- do not trigger a full repaint for selection.
- use TextMetrics::draw() instead of hand calling TextMetrics::drawParagraph().
* InsetText::draw(): don't call TextMetrics::drawSelection().
* InsetMathMBox::drawSelection(): remove.
* TextMetrics:
- drawSelection(): simplify a bit. Now private.
- redoParagraph(): memorize Row selection status.
- x2pos(): fix crash when selecting with PageDown.
- draw(): fill-in the ParPos cache before everything else and not in drawParagraph().
- drawParagraph(): take care of row selection painting.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20066 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/os_unix.cpp
(addFontResources): add the system fonts dir to the paths
scanned by fontconfig.
(restoreFontResources): remove the system fonts dir from the
fontconfig configuration.
* configure.ac:
add check for the fontconfig devel headers.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20034 a592a061-630c-0410-9148-cb99ea01b6c8
- column and row count,
- tabular width and method that goes with it
- method declaration without implementation: void delete_column(col_type)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20032 a592a061-630c-0410-9148-cb99ea01b6c8
- getFont() becomes TextMetrics::getDisplayFont()
- setCharFont() now needs a display font.
- setInsetFont() and setFont() now needs a BufferView, will be transferred to TextMetrics too.
- isRTL(): moved to TextMetrics
- isRTLBoundary(): ditto
- font_: ditto
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20014 a592a061-630c-0410-9148-cb99ea01b6c8
* TextMetrics::drawParagraph(): force full repaint on Insets that are within the current repainting row.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19968 a592a061-630c-0410-9148-cb99ea01b6c8
That makes another simplification both possible and desirable. For some reason, whenever you change the Document Class combobox in Document Settings, LyX tries to read whatever you choose _before_ you try to hit "Apply". Why? I see no good reason. You get the warning earlier that way, but maybe you weren't going to try to load it anyway and were going to change your mind. So I have removed that behavior, in which case you'll get the warning when you try to apply the parameters. This means we can also remove ControlDocument::loadTextclass().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19965 a592a061-630c-0410-9148-cb99ea01b6c8
* BufferView::updateMetrics(): always clear the full text_metrics_ when doing a full update.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19919 a592a061-630c-0410-9148-cb99ea01b6c8
* BufferView::draw(): makes use of PainterInfo::full_repaint
* TextMetrics::drawParagraph(): ditto.
* InsetText::drawSelection(): don't fillRectangle() if there's no selection.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19918 a592a061-630c-0410-9148-cb99ea01b6c8
* src/Buffer.cpp (Buffer::readFile): save timestamp and checksum
of the original disk file, and not those of the file converted
to current format.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19916 a592a061-630c-0410-9148-cb99ea01b6c8
- paintOnlyInsets(): new public method for inset painting only in case the inset dimension didn't change within a Row.
- paintInset(): put out everything not strictly related to the inset painting itself.
- paintHfill(): new private method to cut the reduce code in paintText().
* TextMetrics::drawParagraph(): use paintOnlyInsets() when the Row text nor it's dimension changed.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19912 a592a061-630c-0410-9148-cb99ea01b6c8
* TextMetrics::redoParagraph(): crop the RowList if it is too big.
* ParagraphMetrics::reset(): don't clear its RowList.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19897 a592a061-630c-0410-9148-cb99ea01b6c8
^ Row:
- changed_: new boolean to inform change status at draw time.
- crc_: new crc_ signature
- inline pos() and endpos()
- replace width(), ascent() and descent() direct access with dimension().
* ParagraphMetrics
- do not maintain row_signature_ anymore
- rename calculateRowSignature() to computeRowSignature() and make it public
* TextMetrics
- redoParagraph(): don't clear the ParagraphMetrics row list, reuse and update it.
- rowHeight(), rowWidth(), rowBreakPoint(): take first/end positions instead of Row.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19895 a592a061-630c-0410-9148-cb99ea01b6c8
Design goal: Allow the use of layout "modules", which are to LaTeX packages as layout files are to LaTeX document classes. Thus, one could have a module that defined certain character styles, environments, commands, or what have you, and include it in various documents, each of which uses a different document class, without having to modify the layout files themselves. For example, a theorems.module could be used with article.layout to provide support for theorem-type environments, without having to modify article.layout itself, and the same module could be used with book.layout, etc.
This patch adds the backend. The ModuleList class holds a list of the available modules, which are retrieved from lyxmodules.lst, itself generated by configure.py. There are two LFUNs available: modules-clear and module-add, which do the obvious thing; you can test by typing these into the minibuffer, along with the name of one of the available modules: URL (a CharStyle), Endnote (a Custom Inset), and---with the spaces---End To Foot (View>LaTeX and look at the user preamble), which are themselves in lib/layouts. There are some others, too, that allow theorems to be added to classes like article and book.
The GUI will come next.
Issues: (i) The configure.py script could be improved. It'd be nice, for example, if it tested for the presence of the LaTeX packages a particular module needs. But this would mean re-working the LaTeX script, and I don't know how to do that. Note that at present, the packages are ignored. This will change shortly. (ii) I've used std::string in LyXModule, following what seemed to be a precedent in TextClass. If some of these should be docstrings, please let me know, and I'll change them. (iii) There is at present no distinction between LaTeX and DocBook modules. Should there be? That is: Should there be modules that are available when the document class is a LaTeX class and others that are available only when it is DocBook? Or should there just be one set of modules? Each module can of course indicate for what it is suitable in its description.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19893 a592a061-630c-0410-9148-cb99ea01b6c8
* WorkArea::dispatch(): replace the redraw() call with a Buffer::changed() signal emission in order to update all views of the Buffer, even though some view won't need the redraw...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19867 a592a061-630c-0410-9148-cb99ea01b6c8
Design goal: Allow the use of layout "modules", which are to LaTeX packages as layout files are to LaTeX document classes. Thus, one could have a module that defined certain character styles, environments, commands, or what have you, and include it in various documents, each of which uses a different document class, without having to modify the layout files themselves. For example, a theorems.module could be used with article.layout to provide support for theorem-type environments, without having to modify article.layout itself, and the same module could be used with book.layout, etc.
This third patch just re-factors some code presently in QCitation*. (It also incorporates some bug fixes that have been committed separately.) We're going to use essentially the same set of widgets for choosing modules that is used for choosing citation keys, so we pull the controlling logic out into a new class, QSelectionManager. I did not make this a QWidget. That seemed to me to be overkill, and it would have made things much more complicated, I think...and I'm not all that experienced with Qt, anyway. Anyone who wants to do that is of course welcome.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19860 a592a061-630c-0410-9148-cb99ea01b6c8
- move RowPainter class out of the anonymous namespace so that it can be used by TextMetrics::drawParagraph().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19848 a592a061-630c-0410-9148-cb99ea01b6c8
* Inset::dimension(): access to dim_
* TextMetrics::redoParagraph(): don't trust Inset::metrics() returned boolean as the internal dimension is changed down in the inheritance chain for InsetFoot->InsetCollapsable->InsetText.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19838 a592a061-630c-0410-9148-cb99ea01b6c8
When opening another document, the following is printed to the console:
QWidget::repaint: recursive repaint detected.
QPixmap::operator=: Cannot assign to pixmap during painting
Painter must be active to set rendering hints
[repeated many times here]
Painter must be active to set rendering hints
QPainter:🔚 Painter is not active, aborted
QPixmap::operator=: Cannot assign to pixmap during painting
QPixmap::operator=: Cannot assign to pixmap during painting
currentTabChanged 1File/c/work/file2.lyx
and, when closing LyX:
QPixmap::operator=: Cannot assign to pixmap during painting
QPaintDevice: Cannot destroy paint device that is being painted. Be sure to QPainter::end() painters!
I suspect that solving these issues might also solve the missing close
tab button problem.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19783 a592a061-630c-0410-9148-cb99ea01b6c8
* Toolbar::focusCommandBuffer(): new pure virtual method.
* Toolbars::display(): now return the address of the found toolbar.
* GuiView: get rid of command_buffer_, transferred to QLToolbar.
* QCommandBuffer: replace focus_command with setFocusProxy on edit_;
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19767 a592a061-630c-0410-9148-cb99ea01b6c8
Design goal: Allow the use of layout "modules", which are to LaTeX packages as layout files are to LaTeX document classes. Thus, one could have a module that defined certain character styles, environments, commands, or what have you, and include it in various documents, each of which uses a different document class, without having to modify the layout files themselves. For example, a theorems.module could be used with article.layout to provide support for theorem-type environments, without having to modify article.layout itself, and the same module could be used with book.layout, etc.
This first patch does some reworking of the infrastructrue. We need to distinguish between the TextClass that a particular document is using and the layout of that document, since modules, in particular, can modify the layout. The solution adopted here is to add a TextClass pointer to BufferParams, which will hold the layout. The layout itself is then constructed from the TextClass the document is using. At present, this is completely trivial, but that will change when modules are added.
The pointer in question is a boost::shared_ptr. This is needed because CutAndPaste saves a copy of the layout with each cut or copied selection. We cannot assume the selection vanishes when the document is closed, so there are two options: (i) keep a list of all the layouts that have ever been used by any document; (ii) used some kind of smart pointer. The latter seems preferable, as the former would waste memory. More importantly, the use of a smart pointer allows modules to be modified on disk and then reloaded while LyX is running, and it will eventually allow the same for layout files.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19756 a592a061-630c-0410-9148-cb99ea01b6c8
* LyXView:
- getToolbars(): deleted.
- toolbars_: now protected. The goal is to transfer that to GuiView.
- openLayoutList(): new method. The core should not know how this list is displayed.
- showMiniBuffer(): new pure virtual method to show the mini-buffer.
- focus_command_buffer: deleted.
* GuiView:
- focus_command_widget(): deleted.
- showMiniBuffer(): implemented.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19748 a592a061-630c-0410-9148-cb99ea01b6c8
* BufferView::moveToPosition()
- now only return success boolean
- now schedule a screen centering
- now set the current font to the new position.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19722 a592a061-630c-0410-9148-cb99ea01b6c8
http://bugzilla.lyx.org/show_bug.cgi?id=3427
The problem was that offset_ref_ was calculated based on an empty metrics. The solution is delay the calculation up until the next metrics update.
* BufferView:
- center(): now just set the anchor_ref and program a new screen recentering.
- updateOffsetRef(): update the offset_ref_
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19721 a592a061-630c-0410-9148-cb99ea01b6c8
* loadLyXFile::setBuffer(): get rid of a premature optimisation, we make sure that everything is properly drawn in any case.
* GuiView::setCurrentWorkArea(): make sure everything is updated if we don't change tab.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19717 a592a061-630c-0410-9148-cb99ea01b6c8
- setBuffer(): LyXView has no business in setting parent document.
- loadLyXFile(): delete dead code.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19703 a592a061-630c-0410-9148-cb99ea01b6c8
* Buffer:
- get rid of cursor_ and anchor_
- ~Buffer(): update the labels of its master buffer before closing
- closing(): pass the Buffer address.
* BufferView():
- BufferView(): needs a valid Buffer (should be const in the future.
- most of the change is about removing all test of buffer_ nullity.
- resize(): deleted.
- setBuffer(): deleted.
* Application:
- newLyXView(): simplification
- updated design description in Application.h
* Gui/GuiImplementation: remove all WorkAreas and BufferView creation/Deletion. Workareas are directly handled by LyXView/GuiView and BufferView is created/delete by WorkArea.
* LyXView/GuiView: implement the new design
What is not working yet:
- the close tab button: it is implemented but does not show up.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19686 a592a061-630c-0410-9148-cb99ea01b6c8
The changes are essentially of three types.
First, the std::maps previously used here for storing BibTeX data have become full-fledged classes and so what were previously just a bunch of functions have now become methods of these new classes. This leads to a lot of minor changes in other files, to adapt to the new signature. The changes in insets/ are mostly of this kind.
Second, there are some slightly more substantial changes in src/insets/InsetBibtex.cpp. We now store lists of the field names and entry types that have been used.
Finally, there are the changes to the citation UI. These are mostly straightforward, though adding the new functionality exposed some inadequacies in the previous code that also had to be fixed.
One other change: BibTeX keys are now docstring. This solves some Unicode issues.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19657 a592a061-630c-0410-9148-cb99ea01b6c8
http://bugzilla.lyx.org/show_bug.cgi?id=4123
* GuiView:
- closeEvent(): set quitting=true only when quitting. I don't know why and how this was changed but it was clearly wrong.
- update_view_state_qt(): only update when focus is in. Make sure this is the current LyXView.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19643 a592a061-630c-0410-9148-cb99ea01b6c8
- leftMargin, rightMargin, labelsep, labelindent, parindent are now docstring.
* TextClass.h:
- leftMargin() and rightMargin(): now return a docstring.
All other files: adapt to change above.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19633 a592a061-630c-0410-9148-cb99ea01b6c8
* src/Paragraph.cpp (expandLabel): if the labelstring is empty,
use \thecounter instead; when processing @layout@ tokens, pass the
process_appendix boolean.
* src/buffer_funcs.cpp (setLabel):
* src/insets/InsetFoot.cpp (updateLabels):
* src/insets/InsetCaption.cpp (updateLabels): use
Counters::theCounter.
* src/insets/InsetBibitem.cpp: remove the ad-hoc numbering code
and replace it with a proper updateLabels-based solution.
* src/insets/InsetCommands.cpp (refresh): new method.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19603 a592a061-630c-0410-9148-cb99ea01b6c8
* src/Counters.cpp (Counter::labelString/labelStringAppendix): new
accessors for two new variables
(Counter::setMaster): removed
(Counter::Counter): add a version with arguments.
(Counters::newCounter): add relevant arguments; allow to redefine
an existing counter.
(Counters::reset): reset the current float float.
(Counters::theCounter): return a representation of a given counter
using its labelstring or by default \themaster.\arabic{counter}.
Handle appendix too.
(Counters::counterLabel): add support for macros of the form
\thecounter.
* src/TextClass.cpp (readCounters): also read LabelString and
LabelStringAppendix.
(readFloats): allow to update an existing float; create the
counter associated with the float.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19602 a592a061-630c-0410-9148-cb99ea01b6c8
a structure representing field->value instead of just a single string with
all the data. The data structures are defined in src/Biblio_typedefs.h, and
the main changes are to the parser code in src/insets/InsetBibtex.cpp.
-src/Biblio_typedefs.h
Contains typedefs for new representation. Separating them out limits how much
gets #include'd by other files, and also resolves a circularity problem with
Buffer.h.
-src/Biblio.{h,cpp}
Signature changes and massive simplifications to routines that report
BibTeX data, since we now have an articulate representation.
-src/insets/InsetBibtex.{h,cpp}
Re-write the parser code so we store a key->value map of the BibTeX data
rather than just one long string. This is the main work.
-src/frontends/controllers/ControlCitation.{h,cpp}
-src/insets/InsetBibitem.{h,cpp}
-src/insets/InsetCitation.cpp
Adaptations and simplifications.
-src/insets/Inset.h
-src/Buffer.{h,cpp}
-src/insets/InsetInclude.{h,cpp}
Signature changes.
-src/Makefile.am
-development/scons/scons_manifest.py
Add src/Biblio_typedefs.h
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19598 a592a061-630c-0410-9148-cb99ea01b6c8
* Biblio.cpp: fillWithBibKeys(): ditto.
* InsetInclude.cpp: loadIfNeeded(): set the parent name in any case.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19586 a592a061-630c-0410-9148-cb99ea01b6c8
paragraph-params \align right
will align the paragraph right, leaving spacing, etc, as they were, whereas
paragraph-params-apply \align right
will align the paragraph right but also reset all other parameters to defaults. Note, by the way, that this means that
paragraph-params-apply
sets everything to default.
Some new arguments have also been introduced. These are:
\indent
\indent-toggle
\spacing default
Of course, none of these are found in valid LyX files, but they are useful in menu bindings, etc.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19581 a592a061-630c-0410-9148-cb99ea01b6c8
* Text: new empty() method.
* buffer_funcs.cpp:updateLabels(): return early in case of empty document.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19566 a592a061-630c-0410-9148-cb99ea01b6c8
information is acquired. This involves (i) moving the bulk of fillWithBibKeys()
into Biblio.cpp, (ii) introducing a virtual method Inset::fillWithBibKeys() that,
by default, does nothing, and (iii) over-riding this method in the insets that do
need to do something.
This is all preparatory for a more substantial re-working of the BibTex code,
which should follow shortly.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19565 a592a061-630c-0410-9148-cb99ea01b6c8
that caused the bug, but it does.
Also fix some other UI bugs, relating to resets of the selection models. These
look gratuitous and cause problems in the current code.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19530 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/InsetFoot.cpp (updateLabels): number the footnote if
(1) the footnote counter exists and (2) it is not in a title
layout
* lib/layouts/stdcounters.inc: add a footnote counter.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19524 a592a061-630c-0410-9148-cb99ea01b6c8
* InsetInclude: loadIfNeeded()
- make it non anonymous (used in loadChildDocuments()).
- now return the loaded buffer.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19520 a592a061-630c-0410-9148-cb99ea01b6c8
- reorganize the code to minimize indentation by returning early for special cases
- use a pixmap cache for word drawing. This can be disabled by setting USE_PIXMAP_CACHE to 0 at the top of QLPainter.cpp.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19513 a592a061-630c-0410-9148-cb99ea01b6c8
Override notifyCursorLeaves() in InsetText to force update when
inset was wide. Should be removed if and when wide is.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19511 a592a061-630c-0410-9148-cb99ea01b6c8
do the work, unless we really have a reason not to (fixes bug 4133)
* mathed/InsetMathNest.cpp (lfunMousePress): refactor the code to use
BufferView::mouseSetCursor.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19506 a592a061-630c-0410-9148-cb99ea01b6c8
in the view source panel
* Buffer.cpp (getSourceCode, writeLaTeXSource): fix sync between output and texrow
* frontends/controllers/ControlViewSource.{h,cpp} (getRows): new method to get the current selection in term of latex rows
* frontends/qt4/QViewSource.{h,cpp}: make a selection in the ViewSource widget
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19503 a592a061-630c-0410-9148-cb99ea01b6c8
(operator+=): remove unused method
(getRowFromIdPos) new method to get the texrow from id,pos
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19502 a592a061-630c-0410-9148-cb99ea01b6c8
* DocIterator.cpp (forwardPos, backwardPos): move the 'flat' part to...
* CursorSlice.{h,cpp} (forwardPos, backwardPos, at_end, at_begin): new methods, the first two are part of their DocIterator homonym
* Text2.cpp (setFont): receive CursorSlice arguments as the function is not recursive, adapt
* Text.cpp:
* lyxfind.cpp (findNextChange):
* insets/InsetCollapsable.cpp: adapt
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19500 a592a061-630c-0410-9148-cb99ea01b6c8
* buffer_funcs.cpp (updateLabels): new function taking a buffer and
a ParIterator as arguments. This one is used to update labels
into an InsetText. Cleanup the code to reset depth. Call setLabel
for each paragraph, and then updateLabel on each inset it contains.
(setCaptionLabels, setCaptions): removed.
(setLabel): use Counters::current_float to make caption paragraphs
labels.
* insets/Inset.h (updateLabels): new virtual method, empty by
default; this numbers the inset itself (if relevant) and then all
the paragraphs it may contain.
* insets/InsetText.cpp (updateLabels): basically calls
lyx::updateLabels from buffer_func.cpp.
* insets/InsetCaption.cpp (addToToc): use the label constructed by
updateLabels.
(computeFullLabel): removed.
(metrics, plaintext): don't use computeFullLabel.
(updateLabels): new method; set the label from
Counters::current_float.
* insets/InsetWrap.cpp (updateLabels):
* insets/InsetFloat.cpp (updateLabel): new method; sets
Counters::current_float to the float type.
* insets/InsetBranch.cpp (updateLabels): new method; the numbering
is reset afterwards if the branch is inactive. (bug 2671)
* insets/InsetNote.cpp (updateLabels): new method; the numbering
is reset after the underlying InsetText has been numbered.
(bug 2671)
* insets/InsetTabular.cpp (updateLabels): new method (also handles
longtable)
* insets/InsetListings.cpp (updateLabels): new method; mimics what
is done for Floats (although Listings are not floats technically)
* insets/InsetInclude.cpp (getScreenLabel): in the listings case,
use the computed label.
(updateLabels): new method; that either renumbers the child
document or number the current listing.
* LyXFunc.cpp (menuNew): do not updateLabels on empty documents
(why do we do that at all?)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19482 a592a061-630c-0410-9148-cb99ea01b6c8
* src/BufferView.cpp (workAreaDispatch): set selection status here
* src/Text3.cpp (dispatch):
* src/InsetTabular.cpp (doDispatch): and not here
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19396 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/tempname.cpp: move code about HAVE_MKSTEMP here (only user)
* src/pch.h:
* src/Buffer.cpp:
* configure.ac: remove all traces of utime.h and HAVE_UTIME
* config/lyxinclude.m4: remove WITH_WARNING define (which be rendered useless in
a future commit from christian)
* development/scons/SConstruct: try to update.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19395 a592a061-630c-0410-9148-cb99ea01b6c8
We now go up to 999. If you have more sections that that, you are out
of luck!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19363 a592a061-630c-0410-9148-cb99ea01b6c8
* src/gettext.cpp (locale_init): factor some code; call Messages::init().
* LyX.cpp (exec): call Messages::init() after initializing package().
* Messages.cpp (init): new method, factor some code from get().
(get): change the method used to set the locale. Should be much more robust
than it was (and simpler too).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19360 a592a061-630c-0410-9148-cb99ea01b6c8
* development/MacOSX/Makefile.am: when installing, create bogus
language directories to allow translation through Qt.
* src/frontends/qt4/GuiApplication.cpp (MenuTranslator): new class,
redirects some Qt translation requests to gettext.
(GuiApplication): install the MenuTranslator.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19354 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/filetools.cpp (i18nLibFileSearch): use a trick to find
out the name of the current translation.
* po/*.po: add the entry necessary for the above trick.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19350 a592a061-630c-0410-9148-cb99ea01b6c8
Patch from Guillaume Pothier for 1.4.x adapted by me to current trunk.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19338 a592a061-630c-0410-9148-cb99ea01b6c8
Patch from Guillaume Pothier for 1.4.x adapted by me to
current trunk.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19337 a592a061-630c-0410-9148-cb99ea01b6c8
using false as the third parameter to setenv for not having it
replaced when already set.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19335 a592a061-630c-0410-9148-cb99ea01b6c8
The effect is this: If you try to open a file that is already open,
LyX (i) checks if the buffer is dirty, and just switches buffers if
it is not; (ii) if it is, you get this message:
The document %1$s is already loaded and has unsaved changes.
Do you want to abandon your changes and reload the document?
[Reload] [Keep Changes]
If you hit the latter, you just get switched to the document.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19331 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/gzstream.h: re-introduce the stream we were using in
1.4.x. The boost iostream solution produces unreadable streams
on windows and we do not know why currently.
* src/support/Makefile.am:
* src/Buffer.cpp:
* src/Lexer.cpp:
* development/scons/scons_manifest.py: adapt.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19271 a592a061-630c-0410-9148-cb99ea01b6c8
pasting.
* Text3.cpp (doDispatch/LFUN_MOUSE_PRESS): reorganize the code to make
sure that mouseSetCursor gets called (and therefore persistent selection
stored as needed).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19252 a592a061-630c-0410-9148-cb99ea01b6c8
- force full screen update on buffer switch (fixes bug 3969).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19241 a592a061-630c-0410-9148-cb99ea01b6c8
- new function getSortedColors
* src/frontends/qt4/QPrefs.cpp:
- use that to sort the colors (bug 2571)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19236 a592a061-630c-0410-9148-cb99ea01b6c8
- always replace selected text when inserting an inset (bug 672)
- inset selected text in inserted URL inset (bug 683)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19231 a592a061-630c-0410-9148-cb99ea01b6c8
insets. Up until now this has not been 100% correct, especially in the case
of RTL languages (but not only those).
This fixes bug 1820 (http://bugzilla.lyx.org/show_bug.cgi?id=1820)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19150 a592a061-630c-0410-9148-cb99ea01b6c8
* InsetTabular:
- remove the is_deleted_ boolean
- dispatch(): remove the call to updateDialog at the end
* ControlTabular::initialiseParams(): connect to the current tabular if found.
* QTabular::update_contents(): initialiseParams() each time.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19112 a592a061-630c-0410-9148-cb99ea01b6c8
* src/rowpainter.cpp:
- inNarrowInset: fix method
- paintPar: repaint if we are in a narrow inset.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19111 a592a061-630c-0410-9148-cb99ea01b6c8
correctly. This is not needed for Arabic (ArabTeX), as ArabTeX takes care
of this internally.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19105 a592a061-630c-0410-9148-cb99ea01b6c8
1) LyXFunc::lyx_view_ is not set to 0
2) quiting is not set to true.
This patch add safe guards when closing a view and/or exiting.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19095 a592a061-630c-0410-9148-cb99ea01b6c8
1) create a doc
2) insert an ert inset
3) right-click the inset
4) new window
5) delete the ert inset: BOOM!
This commit replace the static hideDialog signal which was in effect shared by all views with a direct call to Dialog::hide().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19094 a592a061-630c-0410-9148-cb99ea01b6c8
This fixes this crash reported by Bennett:
I'm using pdfsync via lyxpipe to have LyX jump to where I click in the .pdf file of an open LyX document. Recently I've been getting crashes. Here's the console output:
Assertion triggered in void lyx::Text::setCursorIntern(lyx::Cursor&, lyx::pit_type, lyx::pos_type, bool, bool) by failing check "this == cur.text()" in file Text2.cpp:746
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19093 a592a061-630c-0410-9148-cb99ea01b6c8
- consider that not only utf8, but also most cjk encodings, are multibyte encodings
(fixes bug 4012)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19076 a592a061-630c-0410-9148-cb99ea01b6c8
- check if buffer exists before querying for buffer->temppath()
(and use package().tempdir() as a fallback) [fixes bug 4011]
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19062 a592a061-630c-0410-9148-cb99ea01b6c8
* InsetMathOverset.cpp (draw): fix drawing when the first argument
has a non-zero descent.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19060 a592a061-630c-0410-9148-cb99ea01b6c8
put LIBICONV in LIBS.
* src/Makefile.am:
* src/client/Makefile.am: update accordingly.
* config/qt4.m4: do not try to run pkg-config tests when pkg-config
is not installed.
* INSTALL.MacOSX: advise to use pkg-config; remove -lz from LDFLAGS;
remove --with-frontend=qt4 from configure line; in the svn case, remove
also --disable-stdlib-debug and --disable-concept-checks (and explain
why --disable-stdlib-debug may be needed).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19056 a592a061-630c-0410-9148-cb99ea01b6c8
* Layout.h:
- name_, obsoleted_by_, depends_on_ are now docstrings.
All other changes results from the above string -> docstring changes. In particular, we now try to translate the layout names only if possible (i.e. if they are ASCII only).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19042 a592a061-630c-0410-9148-cb99ea01b6c8
http://bugzilla.lyx.org/show_bug.cgi?id=3719
The problem is that the full toc is not regenerated when creating standard (i.e unnembered) paragraph. As the TocBackEnd use ParIterator for in buffer jumps, this can get out of sync. The partial updateLabel() is my doing and comes before the TocBackend stuf.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19040 a592a061-630c-0410-9148-cb99ea01b6c8
whether we are in appendix mode.
* buffer_funcs.cpp (setLabel): set Counters::appendix as needed.
This fixes bug 3862 automagically.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19039 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/os_cygwin.cpp
* src/support/os_win32.cpp
(addFontResources): use AddFontResourceEx on Windows version
supporting this API in order to mark our fonts as private.
(restoreFontResources): ditto with RemoveFontResourceEx.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19038 a592a061-630c-0410-9148-cb99ea01b6c8
See also http://www.lyx.org/trac/changeset/19003
* BufferView.cpp (setBuffer): save selection before switching buffer
(mouseSetCursor): save selection before resetting it
(putSelectionAt): no need to save selection
* Cursor.cpp (selHandle): save selection before resetting it
* CutAndPaste.cpp (cutSelection, eraseSelection): save selection before
deleting it.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19026 a592a061-630c-0410-9148-cb99ea01b6c8
word-delete-backward and line-delete when there is a selection.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19025 a592a061-630c-0410-9148-cb99ea01b6c8
* src/Changes.cpp:
* src/support/userinfo.cpp:
* src/Paragraph.cpp:
* src/Changes.h:
* src/Buffer.cpp:
* src/Paragraph.h:
* src/BufferParams.cpp: do not save the name of authors
in LyX documents, who have not made a single change in
change tracking mode
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19019 a592a061-630c-0410-9148-cb99ea01b6c8
defined template as default instead of RasterImage (bug 3983)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19013 a592a061-630c-0410-9148-cb99ea01b6c8
- isAscii(): char is signed with MSVC so the comparison was not correct. Add a static_cast to "unsigned char" as per the other methods.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19001 a592a061-630c-0410-9148-cb99ea01b6c8
of \inputencoding commands, which are not needed in some cases (e.g., Hebrew
with ivritex).
This fixes some of the remaining problems (but not all) from bug 3613 (namely, http://bugzilla.lyx.org/show_bug.cgi?id=3613#c9).
See also some example files fixed by this in http://permalink.gmane.org/gmane.editors.lyx.devel/88805 .
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18994 a592a061-630c-0410-9148-cb99ea01b6c8
- don't try to trim after a dot that is the last character in the name
(fixes crash, bug 3981)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18992 a592a061-630c-0410-9148-cb99ea01b6c8
* src/support/docstring.{cpp,h}:
- rename normalize_kc to normalize_c and use normalization form C (instead of KC)
* src/callback.cpp:
* src/Trans.cpp:
* src/frontends/qt4/GuiClipboard.cpp:
* src/frontends/qt4/GuiSelection.cpp:
* lib/lyx2lyx/lyx_1_5.py:
- use normalization forms C and D instead of KC and KD.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18991 a592a061-630c-0410-9148-cb99ea01b6c8
* frontend_helpers.cpp (Sorter): use the current locale for sorting
(bug 2739)
* frontend_helpers.cpp: cleanup headers.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18988 a592a061-630c-0410-9148-cb99ea01b6c8
The problem is that a screen update needs a bibtex key for proper rendering of the Citation. This key requires the master document to load all child document, which trigger an additional screen update, even when we don't switch buffer. The problem is that we are already in the process to update the screen, hence the crash.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18986 a592a061-630c-0410-9148-cb99ea01b6c8