Crash when setting caption on a row with a multicolumn.
If there is already a multicolumn on the row, the number of cells is different from column_info.size().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28427 a592a061-630c-0410-9148-cb99ea01b6c8
Crash when selecting a row and doing "Delete column" in a table with multicolumns.
The check "column + 1 < column_info.size()" checks whether there is at least one column after this one. However, this check is no longer valid if we remove the column from column_info first.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28419 a592a061-630c-0410-9148-cb99ea01b6c8
Wrong width display of multicolumn cells.
When changing a custom width cell into a multicolumn, the isFixedWidth bool should be set to false. Now, the function setFixedWidth could only set isFixedWidth to true when needed.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28407 a592a061-630c-0410-9148-cb99ea01b6c8
* allows the selection of a whole cell with shift+key
* shift-movement between empty cells with a single keystroke
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28385 a592a061-630c-0410-9148-cb99ea01b6c8
- allow repeated shift-up in a multi-line column,
- finish r27581 and r27567 :
we have to call cur.selHandle ourselves now,
- do not dispatch to the cell in multicell selection.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27632 a592a061-630c-0410-9148-cb99ea01b6c8
* Always put the cursor at the end of the cell (this was set at the beginning with mouse selection).
* handle LFUN_SELF_INSERT in case of multi-cell selection -> the whole cell contents will be deleted.
This commit fixes http://bugzilla.lyx.org/show_bug.cgi?id=5225
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26668 a592a061-630c-0410-9148-cb99ea01b6c8
* src/insets/InsetTabular.cpp:
- keep track of encoding after passing a copy of the OutputParams.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26592 a592a061-630c-0410-9148-cb99ea01b6c8
except when in math mode, where \boldsymbol is used instead of \mathbf.
Restore the previous binding of Ctrl-B and make sure that LFUN_FONT_BOLDSYMBOL,
now bound to Ctrl-Alt-B, can be toggled.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26418 a592a061-630c-0410-9148-cb99ea01b6c8
- comment out non-working code that can trigger an assertion (probably bug 5225).
(this code also does not work as expected in branch, but it doesn't act as badly there)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26407 a592a061-630c-0410-9148-cb99ea01b6c8
* src/Inset.h:
- new member content Alignment that indicates whether the content
of text insets should be displayed with a specific alignment
* src/TextMetrics.cpp:
- handle inset's contentAlignment
* src/insets/InsetTabular.{cpp,h}:
- set contentAlignment for tabular cells.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26380 a592a061-630c-0410-9148-cb99ea01b6c8
Introduce OutputParams::inTableCell, to track when we are in a table cell.
Use this information to output \newline rather than \\ when in one.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26349 a592a061-630c-0410-9148-cb99ea01b6c8
since it doesn't make sense to select two and a half cells.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26101 a592a061-630c-0410-9148-cb99ea01b6c8
a multicell selection. But the more I thought about this, the more it seemed
that pasting into multicell selections shouldn't be allowed. What exactly
ought to happen if the user selects a 2x3 grid of cells and then tries to
paste a 5x5 group of cells? LyX, anyway, just ignores the selection in this
case, which is not what the user will expect. So let's just not go there.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26099 a592a061-630c-0410-9148-cb99ea01b6c8
please check your favourite insets, I am sure I broke _something_...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24006 a592a061-630c-0410-9148-cb99ea01b6c8
* src/Buffer.cpp:
- file format change to 324
* development/FORMAT:
- document file format change
* src/insets/InsetNewline.{cpp,h}:
- the former two separate derivates are now merged into one inset
with proper Params and Mailer. This simplifies the structure and allows for
switching between the two kinds.
* src/Text3.cpp:
- The newline insets are now being generated with
newline-insert [newline|linebreak]
* src/factory.cpp:
* src/Text.cpp:
- Newline inset is now a proper inset with opening and closing tag.
* src/FuncCode.h:
* src/LyXAction.cpp:
* src/Text3.cpp:
* src/insets/InsetCollapsable.cpp:
* src/insets/InsetTabular.cpp:
* src/mathed/InsetMathGrid.cpp:
* src/mathed/InsetMathHull.cpp:
- remove LFUN_NEW_LINE, LFUN_LINE_BREAK,
add LFUN_NEWLINE_INSERT
* lib/lyx2lyx/LyX.py:
* lib/lyx2lyx/lyx_1_6.py:
- conversion and reversion routines for newline insets.
* lib/ui/stdmenus.inc:
* lib/ui/stdcontext.inc
- adapt menu and add context menu to switch between newpage variants.
* lib/bind/*.bind:
- adapt to new lfuns.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23966 a592a061-630c-0410-9148-cb99ea01b6c8
* add to toolbar + icon
* update border icons to match in size
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23846 a592a061-630c-0410-9148-cb99ea01b6c8
- gets rid of the M_TOGGLE_LINE_... functions
- allows arbitrary clines without multicol
- sets arbitrary vertical lines through multicol
- drop row/col line properties, everything is now stored at the cell level
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23812 a592a061-630c-0410-9148-cb99ea01b6c8
"*supported" methods maybe should be merged with a bit-enum as return value.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23776 a592a061-630c-0410-9148-cb99ea01b6c8
s/rowstruct/RowData/g
s/columnstruct/ColumnData/g
closer to the current naming convention.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23290 a592a061-630c-0410-9148-cb99ea01b6c8
Sorry, Andre, but this broke not only the modules stuff but the general handling of TextClasses. I'm not opposed to doing this sort of thing, but it's going to be a little more complicated. I'll do it when I get a bit of time, or I can explain what the issue is here if you want to do it.
I'll separately re-commit some of the cleanup here.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23189 a592a061-630c-0410-9148-cb99ea01b6c8
Also a few cosmetical changes where I xould not resist.
Would be nice if the 'modules people' could verify that their baby
is strill alive...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23154 a592a061-630c-0410-9148-cb99ea01b6c8
- fix check for top- and bottomlines (rev. 23011).
topLine and bottomLine take a cell argument, not a row.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23020 a592a061-630c-0410-9148-cb99ea01b6c8
This brings things back to the way they were (semantically) before r22929,
which is the way they should be (visual mode has not been implemented for
tables, yet, and therefore tables should not be semantically changed here).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22967 a592a061-630c-0410-9148-cb99ea01b6c8
from the one posted to the list.
The basic idea has two parts. First, we hard code an "empty layout"
(called PlainLayout, for want of a better name) in TextClass and read it
before doing anything else. It can therefore be customized by classes,
if they want---say, to make it left-aligned. Second, InsetText's are
divided into three types: (i) normal ones, that use the "default" layout
defined by the text class; (ii) highly restrictive ones, such as ERT and
(not quite an inset) table cells, which demand the empty layout; (iii)
middling ones, which default to an empty layout and use the empty layout
in place of the default. (This is so we don't get the same problem we
had with ERT in e.g. footnotes.) The type of inset is signaled by new
methods InsetText::forceEmptyLayout() and InsetText::useEmptyLayout().
(The latter might better be called: useEmptyLayoutInsteadOfDefault(),
but that's silly.) The old InsetText::forceDefaultParagraphs() has been
split into these, plus a new method InsetText::allowParagraphCustomization().
A lot of the changes just adapt to this change.
The other big change is in GuiToolbar: We want to show LyXDefault and
the "default" layout only when they're active.
There are a handful of places where I'm not entirely sure whether we
should be using forceEmptyLayout or !allowParagraphCustomization() or
both. The InsetCaption is one of these. These places, and some others,
are marked with FIXMEs, so I'd appreciate it if people would search
through the patch and let me know whether these need changing. If they
don't, the FIXMEs can be deleted.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22966 a592a061-630c-0410-9148-cb99ea01b6c8
* src/Clipboard.h:
* src/frontends/GuiClipboard.{cpp,h}:
- new member hasInternal() which indicates whether the OS knows
the concept of clipboard ownership.
* src/insets/InsetTabular.cpp (doDispatch):
- consider hasInternal() while pasting.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22325 a592a061-630c-0410-9148-cb99ea01b6c8
* DocIterator as MacroPosition
* Iterative search for macro in scope until a visible one is found.
This include the ability to resolve macro inside nested text insets.
* Speed up macro lookups by factor 2: only getMacro(name) call, no
further hasMacro(name) call before
* Both way child/master support
* Correct macro scope for multi-paragraph environments
* Correct macro scope for multi-depth-paragraphs
* Buffer::updateMacros made const
* Update macros when loaded (of master and child)
* Do not remove too many braces when unfolding a macro. This could
lead to a data loss because the relationship between arguments of
macros can be mixed up if nested macros are unfold at once.
* Reduce dependencies to MetricsInfo in MathMacro
* Update macros when needed. Normally it's done just before doing
metrics. But in cases without a brace around some constructs (like
\left(bla\right)) there is some help needed.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22241 a592a061-630c-0410-9148-cb99ea01b6c8
- dispatch(): transfer LFUN_FILE_INSERT_PLAINTEXT_* to GuiView::dispatch()
- insertPlaintextFile(): split in BufferView::insertPlaintextFile() and GuiView::insertPlaintextFile()
This patch get rid of FileDialog use in BufferView. Remains Buffer, Converters and LyXFunc.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21930 a592a061-630c-0410-9148-cb99ea01b6c8
- sanitize cursor after insertion via LFUN_CLIPBOARD_PASTE
or LFUN_FILE_INSERT_PLAINTEXT (bug 4368).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21920 a592a061-630c-0410-9148-cb99ea01b6c8
* BufferView:
- insertPlaintextString(): now accept a FileName.
- contentsOfPlaintextFile(): ditto and use FileName::fileContents().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21915 a592a061-630c-0410-9148-cb99ea01b6c8
Now support/* should have no dependencies on src/* anymore.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21851 a592a061-630c-0410-9148-cb99ea01b6c8
- fileformat change
- tex2lyx support
- rename LFUN_BREAK_LINE to LFUN_NEW_LINE because this is what the lfun does and to avoid confusions
- new menu entry
- new shortcut C-S-Return
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21778 a592a061-630c-0410-9148-cb99ea01b6c8
* Painter.h: move isDrawingEnabled() to public Area.
* TextMetrics::drawParagraph(): backup and restore original drawing state of the Painter.
* InsetTabular::draw(): ditto.
* InsetMathNest::drawSelection(): ditto.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21471 a592a061-630c-0410-9148-cb99ea01b6c8
This is the first patch in a series meant to remove LTR bias from the code.
Currently, there are many places in the code where "right" and "left" are used,
but where we actually mean "forward" and "backwards" --- which is the same
thing in LTR text, but not in RTL/Bidi text.
See full details in http://permalink.gmane.org/gmane.editors.lyx.devel/97550.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21128 a592a061-630c-0410-9148-cb99ea01b6c8
In the future, when Cursor has been fixed to work correctly with multiple views of the same Buffer, we could transfer the Undo owner from Buffer to Cursor.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21031 a592a061-630c-0410-9148-cb99ea01b6c8
- get rid of the cached Dimension. Text inset dimensions are saved in ParagraphMetrics and mathed maintain their own dimension where needed.
- width(), ascent(), descent(): deleted.
- dimension(): now needs a valid BufferView.
- metrics(): now void.
* BufferView::getCoveringInset(): simplify.
* ParagraphMetrics(): now cache inset dimensions.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20420 a592a061-630c-0410-9148-cb99ea01b6c8
- Modifier on return type ignored
- Ambigous else
- Ambigous logical operators
- Semi-colon instead of empty block
- Missing header files
- Missing using std::XX
- Initialization out of order
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20304 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
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
* 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
* 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
- Split the language Arabic into "arabic_arabi" that uses the arabi-package and "arabic-arabtex" that uses the arabTeX-package to typeset Arabic. This is needed because both packages have some advantages over the other people need.
(This change is a consequence of a long and fruitful discussion with Mostafa, Dov, and me.)
Patch by Dov and me.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18887 a592a061-630c-0410-9148-cb99ea01b6c8
dispatchers in mathed and text only do local work, i.e. only try to
move the cursor with their local knowledge, not globally as before in
the Cursor::goUpDown function before. The old approach used one of
brutefind functions as a last way out to really move the cursor up or
down. The result was some strange behavior that the nearest inset was
selected when jumping from math to text, not one in the next line.
2. removed LFUN_FINISHED_UP/DOWN, as there seem to be no effect and it
seems to be obsolete.
3. target_x is working again, mainly by adding a textTargetOffset_
member to the Cursor which keeps the difference between the target_x
and the actual position of the cursor on screen. As long as
pos+offset=target is fulfilled the target_x is not touched and the
cursor keep the column while going up/down.
4. moved the text cursor up/down code to the Cursor class, in analogy
to the mathed code.
5. For 1 it is necessary to know the cursor position before the
dispatch. So this data is added to the Cursor.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18569 a592a061-630c-0410-9148-cb99ea01b6c8
- when exporting with pdflatex
- when exporting with latex and dvipost is not available
rename two colors (strikeout => deletedtext, newtext => addedtext)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18284 a592a061-630c-0410-9148-cb99ea01b6c8
change of behavior of rotate-tabular and rotate-cell toolbar buttons such that they toggle the rotation. Therefore a toggle feature is added to the tabular features. Moreover after the patch the state of the set-rotate-cell and toggle-rotate-cell buttons is on only if all selected cells in the table are rotated. If not all selected cells are rotated then the toggle button rotates all selected cells.
The toggle-icons are copied from the set-icons.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18280 a592a061-630c-0410-9148-cb99ea01b6c8