Commit Graph

374 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
f8eda52820 Fix bug #3733: 'undo' does not revert 'changed' status for file
* src/LyXAction.cpp: add ReadOnly flag to LFUN_UNDO and LFUN_REDO, since
  we do not want the dispatch mechanism to mark buffer dirty after them.
* src/BufferView.cpp: handle "by hand" the activation of undo/redo
* src/Undo.cpp: add lyx_clean member to UndoElement and make sure to 
  maintain it with undo operations; add a new markDirty() member for UndoStack
* src/Buffer.cpp: when saving a document, mark the undo and redo stacks 
  elements as dirty.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35068 a592a061-630c-0410-9148-cb99ea01b6c8
2010-08-06 23:54:04 +00:00
Richard Heck
35327c0b5b I guess I like this better.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35020 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-29 00:00:37 +00:00
Richard Heck
523056c092 Move the error message out of LayoutFileList::load() and have it be
reported by the caller. Otherwise, you could get the error message the
first time, and then it would succeed the second!!


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35019 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-28 21:03:27 +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
Pavel Sanda
9b1ed66dbe Paragraphs start from 0
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34673 a592a061-630c-0410-9148-cb99ea01b6c8
2010-06-15 13:54:49 +00:00
Vincent van Ravesteijn
7f593196fc Add an update parameter to BufferView::scrollToCursor and BufferView::scrollDocView. This parameter indicates whether a repaint is requested
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34658 a592a061-630c-0410-9148-cb99ea01b6c8
2010-06-14 21:48:23 +00:00
Vincent van Ravesteijn
e1ba93a068 *BufferView: Remove default parameter value.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34657 a592a061-630c-0410-9148-cb99ea01b6c8
2010-06-14 21:38:38 +00:00
Jürgen Spitzmüller
c8faa01f4f make branch-add-insert aware of the separator ("|") [bug #6621]
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34653 a592a061-630c-0410-9148-cb99ea01b6c8
2010-06-14 13:39:08 +00:00
Pavel Sanda
053b905e08 Add output_sync icon to view/update toolbar
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34499 a592a061-630c-0410-9148-cb99ea01b6c8
2010-05-25 11:36:02 +00:00
Vincent van Ravesteijn
b269eb9117 Fix a crash due to Inset**::mouse_hover_[] containing an invalid pointer to a BufferView.
Clear the mouse_hover state when closing the BufferView. Otherwise, there will be an invalid pointer stored in the Inset and crashing LyX when the Inset's destructor is called.

See also r33908, r34117, r34348, r34353, r34354, r34363 and bug #3900.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34365 a592a061-630c-0410-9148-cb99ea01b6c8
2010-05-03 23:04:51 +00:00
Vincent van Ravesteijn
750620765f Fix another crash due to BufferView::last_inset_ being an invalid pointer.
Now, we only want to let the last_inset_ pointer point at insets that accept the mouse_hover setting. Otherwise, the pointer is not cleared on deletion of the inset.

See also r33908, r34117, r34348, r34353 and bug #3900.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34354 a592a061-630c-0410-9148-cb99ea01b6c8
2010-05-02 19:12:25 +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
87623ff478 Fix bug #6141: Scrolling error with insets at top of file.
Fix the regression introduced in r28397 while fixing bug #5573.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34296 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-26 14:57:27 +00:00
Vincent van Ravesteijn
b14ef59db8 Remove boundary parameter from BufferView::coordOffset(). The first DocIterator parameter already contains this information.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34248 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-21 13:12:40 +00:00
Vincent van Ravesteijn
63d24ca3c4 Remove boundary parameter from BufferView::getPos(). The first DocIterator parameter already contains this information.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34247 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-21 13:03:04 +00:00
Pavel Sanda
62ca7f3ae5 Proper camel case for FileName.absFilename
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34234 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-21 01:19:09 +00:00
Vincent van Ravesteijn
0b92e538d9 Use the AtPoint mechanism for the LFUN_INSET_EDIT and LFUN_LABEL_COPY_AS_REF.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34220 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-19 17:11:43 +00:00
Vincent van Ravesteijn
eb9fb94214 Do not set the enabling of the status flag if the getStatus() function does not give a decisive answer. As a consequence of removing this call from BufferView, we should disable the flag in the end of GuiApplication::dispatch() if it is not handled by any getStatus() function.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34164 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-16 15:55:37 +00:00
Vincent van Ravesteijn
5a77a063c1 Remove the unclear FuncStatus::operator|=. Without knowing the internals of FuncStatus it is unsafe to use this operator, so let's not use it.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34161 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-16 12:15:27 +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
Vincent van Ravesteijn
d8db0e8515 Rename anchor() to normalAnchor() as the anchor() function was already returning a normalized anchor in stead of the real one.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34145 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-15 17:49:15 +00:00
Vincent van Ravesteijn
8156884090 Make Cursor::disp_ private as it should be.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34144 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-15 17:34:34 +00:00
Vincent van Ravesteijn
8c5ad7af21 Revert part of r33908.
We need a way to test for the pointer to be valid before using it in updateHoveredInset(). For now, just set it to zero, so that this critical won't find its way into alpha-2.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34117 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-12 08:10:54 +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
Jean-Marc Lasgouttes
e8529a2ecf Get rid of all-insets-toggle and explain how to replace it with inset-forall.
Change inset-forall so that screen is not repainted at each iteration, since this lead to very slow opeartion on large files. This is not a problem for current uses, but can potentially lead to crashes.

See ticket #6641 for more thoughts and possible solutions.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34092 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-08 12:39:41 +00:00
Vincent van Ravesteijn
33f28623e5 * BufferView.cpp: typo again.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34087 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-08 09:17:00 +00:00
Uwe Stöhr
45bffba885 BufferView.cpp: typo
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34085 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-08 01:23:04 +00:00
Vincent van Ravesteijn
0b450f40e7 Refactorization: I don't like nested ?: constructions. Especially not followed by an if statement which is a special case for the deepest level of the nested ?: construction.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33910 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-29 15:32:45 +00:00
Vincent van Ravesteijn
6a9f44eaa2 Refactorization: Buffer::changed() can update the metrics as well, so we don't have to do it in scrollToCursor if we call Buffer::changed() anyway.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33909 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-29 15:29:26 +00:00
Vincent van Ravesteijn
71c1ad3517 Fix bug #3900: Insets painted as hovered without mouse hover.
When updating the screen, moving the mouse, or scrolling the buffer, we check whether the hovering status of the insets.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33908 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-29 15:21:10 +00:00
Tommaso Cucinotta
3b4bb219d6 No more bookmarks in internal buffers (addresses #6605).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33842 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-23 00:45:37 +00:00
Richard Heck
6f624ab79b Change updateLayout() to updateDocumentClass(), since that is what it
does.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33682 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-08 20:37:11 +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
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
Jean-Marc Lasgouttes
668d0f8c3f do not use theLyXFunc()
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33385 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-09 14:26:59 +00:00
Jean-Marc Lasgouttes
b4d588e78a cleanup handling of LFUN_REGEXP_MODE ; cleanup Text::getStatus
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33363 a592a061-630c-0410-9148-cb99ea01b6c8
2010-02-08 11:19:48 +00:00
Tommaso Cucinotta
e9e6463de7 Removed obsolete FIXME (the invoked isInternal() method already does that).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33304 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-31 22:18:21 +00:00
Tommaso Cucinotta
dff3792986 Refactor of r33302 (addressing #6457) according to vfr comments.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33303 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-31 22:12:23 +00:00
Tommaso Cucinotta
0881479c48 Inhibits insertion of Regexp insets within InsetERT context (and fixes #6495).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33302 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-31 21:38:18 +00:00
Jean-Marc Lasgouttes
fe9a43f44b Add DispatchResult argument to BufferView::dispatch, and remove explicit updates in there.
Split LyXFunc::dispatch into a wrapper that does the actual screen updates and
a worker method that updates a DispatchResult object.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33226 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-25 15:14:41 +00:00
Jürgen Spitzmüller
ee9a70acbe * BufferView.cpp:
- Fix crash when performing word-replace while the cursor has a selection
	  in mathed (bug 6437)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33204 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-24 17:35:10 +00:00
Jean-Marc Lasgouttes
ceb50a253c get rid of notes-mutate and explain that inset-forall can do the same
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32986 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-12 15:54:33 +00:00
Jean-Marc Lasgouttes
a00fbcd871 get rid of next-inset-modify ; inset-modify does the same now
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32965 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-11 15:50:07 +00:00
Jean-Marc Lasgouttes
b692466769 set max number of iterations to 10000 in inset-forall ; try to keep the cursor where it was (I am not sure that the effect of fixIfBroken seems natural though)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32885 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-08 15:57:25 +00:00
Vincent van Ravesteijn
570f96bc6e Add a boolean to GuiWorkArea::redraw to indicate whether the metrics must be updated. The current test "lyx_view_ != guiApp->currentView() || lyx_view_->currentWorkArea() != this" is not enough, especially not if the buffer is changed and buffer->changed() is called. Moreover, there are a lot of combinations of updateMetrics() followed by buffer->changed(), these can now be replaced by one call to buffer->changed(bool).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32874 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-08 02:03:54 +00:00
Pavel Sanda
e21867818e Fix crash
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32835 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-07 16:26:52 +00:00
Jean-Marc Lasgouttes
f2e6a5ecf8 Implement new inset-forall lfun. This function iterates over all insets in
current buffer and applies a given function at cursor position before the 
inset. It is actually possible to filter on the type of inset.


Remove all index insets:
inset-forall Index delete-char-forward

Remove all (!!) insets:
inset-forall * delete-char-forward

Close all Notes (also works for a particular branch, for example)
inset-forall Note inset-toggle close

Close only yellow sticky notes
inset-forall Note:Note inset-toggle close

Of course, things may become weird:
Put LyX in an infinite loop if there is at least a Note
inset-forall Note char-backward

In this case, the code will stop after 1000 iterations.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32834 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-07 15:47:58 +00:00