Commit Graph

81 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
bc128e7bf8 Use range-based loops in BufferList 2019-02-25 15:19:58 +01:00
Jean-Marc Lasgouttes
8b107f0490 Handle properly undo groups in embedded work areas
When a buffer is in an embedded work area (adv. find&replace), it is
not found by BufferList:::exists(), and therefore the undo group
created in GuiApplication::dispatch and in the handling of
LFUN_COMMAND_SEQUENCE will not be closed.. Crashes can ensue, as
described in Ubuntu bug:
https://bugs.launchpad.net/bugs/1737429

The solution is to introduce BufferList::isInternal and act on it.

Fixes bug #10847.
2017-12-13 10:46:54 +01:00
Richard Heck
a6258b93bc Remove useless code.
runparams was a temporary anyway.
2017-11-24 18:36:09 -05:00
Jean-Marc Lasgouttes
c2d182f59a Remove test that is not needed.
We know that buf is not null at this point.

Spotted by coverity.
2017-07-06 14:14:43 +02:00
Richard Heck
75bfed5507 Fix trailing whitespace in cpp files. 2017-07-03 13:53:14 -04:00
Juergen Spitzmueller
cde5d60fcf Update parent buffer as soon as a child has been released
This prevents dangling pointers that might crash LyX.

Fixes: #9979.

Candidate for stable.
2017-06-17 09:43:01 +02:00
Richard Heck
0b67e103e9 Simple cache for information on exportable formats, since we seem
to access this information a lot.
2016-10-20 23:07:13 -04:00
Guillaume Munch
489dca71cd Simplifications, mainly removal of boost::function and useless std::bind 2016-07-03 01:39:32 +02:00
Guillaume Munch
557975a8de Replace auto_ptr with unique_ptr
This is a mechanical replacement. For now it seems that unique_ptrs are
essentially used for exception-safety. More could certainly be done to clarify
pointer ownership in general.
2016-06-09 15:21:39 +01:00
Richard Heck
e8ffb0c97a Rewrite the BufferList::releaseChild method so that it only checks
whether a given child Buffer is also a child of some other parent.
Then do the releasing or resetting where this method is called.

There should be no change of behavior with this patch.
2016-01-05 09:59:31 -05:00
Scott Kostyshak
d887b2a5dc Update previews when turned on in prefs (#9507)
Previews are now generated when previews are turned on in
preferences. This change ensures that when users activate previews
for the first time, they are not confused by no previews showing up
(a restart of LyX or a triggering of each individual preview would
be required).

There was a previously attempted fix for #9507 at 390ae054 which was
reverted at 358745d0 for performance reasons: it updated previews
after every preference change and updating previews is costly (even
if the cache signals there are no changes needed).

This implementation is consistent with what we do for updating the
system fonts in preferences.
2015-11-30 18:51:05 -05:00
Scott Kostyshak
358745d0e3 Revert "Update previews on preference change (#9507)"
The referenced commit lead to performance issues and possibly
crashes in some cases when saving preferences. Thanks to Guillaume
for discovering the issues. See #9828 for more discussion.

I hope to come up with a better fix for #9507.

This reverts commit 390ae05444.
2015-11-11 18:06:07 -05:00
Scott Kostyshak
390ae05444 Update previews on preference change (#9507)
Normally the theBufferList().updatePreviews(); statement would go inside
of PrefDisplay::applyRC. However, that would not work well because
Buffer::updatePreviews() calls loader() which conditions on
(lyxrc.preview == LyXRC::PREVIEW_OFF) but the new RC has not been set at
this point.
2015-04-21 02:40:18 -04:00
Georg Baum
922d48da27 Make BufferList::fileNames() threadsafe
Using a static variable here was premature optimization: fileNames() is only
called from GuiRef (directly or indirectly), and since this is a dialog the
copying of a FileNameList is not noticeable at all.
2014-07-05 12:51:40 +02:00
Richard Heck
fdbe775b9f This is the result of an audit of all static variables, looking
for possible thread conflicts, of the sort Georg resolved at
6a30211f. I have made static variables const where possible,
and marked cases that looked potentially problematic with the
comment:
	// FIXME THREAD
Many of these definitely are vulnerable to concurrent access, such
as the static variables declared at the start of output_latex.cpp.
Suppose, e.g., we were outputting latex and also displaying the
source of a different document.

I'd appreciate it if others could grep for "FIXME THREAD" and see
if some of these are harmless, or what.
2014-04-21 11:51:57 -04:00
Richard Heck
1b1f8dd235 Audit all the LASSERT calls, and try to do something sensible at
each failure.

There are several places I was not sure what to do. These are marked
by comments beginning "LASSERT:" so they can be found easily. At the
moment, they are at:

Author.cpp:105: // LASSERT: What should we do here?
Author.cpp:121: // LASSERT: What should we do here?
Buffer.cpp:4525:        // LASSERT: Is it safe to continue here, or should we just return?
Cursor.cpp:345:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:403:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:1143:                // LASSERT: There have been several bugs around this code, that seem
CursorSlice.cpp:83:     // LASSERT: This should only ever be called from an InsetMath.
CursorSlice.cpp:92:     // LASSERT: This should only ever be called from an InsetMath.
LayoutFile.cpp:303:                     // LASSERT: Why would this fail?
Text.cpp:995:           // LASSERT: Is it safe to continue here?
2013-04-25 17:27:10 -04:00
Lars Gullik Bjønnes
6b2232a29c src/*.cpp: reformatting to increase consistency 2012-10-28 17:42:07 +01:00
Juergen Spitzmueller
02c73cd721 Do not let the parent interfere when I child document is exported/view standalone (#8100, #8101) 2012-10-03 10:41:07 +02:00
Vincent van Ravesteijn
6cf1847b31 New function BufferList::newInternalBuffer
This solves the problem that newBuffer() already use Buffer::isInternal
but there was no chance to set it yet.
2012-05-12 14:36:13 +02:00
Vincent van Ravesteijn
fa438c1699 Remove read_only parameter from newBuffer
This parameter defaults to false and it is never set to true. So, we can
better remove the parameter.
2012-05-12 14:35:04 +02:00
Richard Heck
bfad09a073 Cosmetics.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40199 a592a061-630c-0410-9148-cb99ea01b6c8
2011-11-15 18:24:42 +00:00
Richard Heck
f25e7c340b Improve argument handling for the source generation routines.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40069 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-29 20:14:48 +00:00
Enrico Forestieri
d703d90574 Fix bug #7835 (Relative paths are not supported by the TEXINPUTS prefix)
This restores \input@path handling, which turns out to be necessary, as
the TEXINPUTS mechanism is not used with relative paths. It turns out
that both methods must be used, because \input@path does not work in all
cases (most notably with tikz).


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39918 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-22 15:10:43 +00:00
Enrico Forestieri
7c17e970b1 Fix bug #6170 (Latex Compiler error when lyx file is located in a path which contains a "#")
This removes \input@path handling.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39563 a592a061-630c-0410-9148-cb99ea01b6c8
2011-08-29 17:02:27 +00:00
Tommaso Cucinotta
edc94a578f Added possibility to retrieve internal buffers (by their tmp file-name) from the Model.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37548 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-07 20:31:09 +00:00
Vincent van Ravesteijn
0c9da47505 BufferList should not determine that the current author has id = 0. This should really be in AuthorList. Besides BufferList shouldn't have to create an Author by itself.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35921 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-29 19:27:55 +00:00
Vincent van Ravesteijn
be40bdeb3e Write code in a language that everyone understands ?
Does anyone have a clue why nvec is declared static here ? Or can I remove it ?

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35920 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-29 19:10:54 +00:00
Richard Heck
5a46224f73 Remove the magic boolean in getChildren() from the public interface.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35538 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-29 13:05:57 +00:00
Richard Heck
2291614a6c Introduce a typedef for vector<Buffer *>. No change in behavior
anticipated.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35529 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-29 11:55:10 +00:00
Peter Kümmel
30bae1710a cmake: fix merged build
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34954 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-17 22:24:30 +00:00
Peter Kümmel
807fc1443a also use TR1 code for bind and shared_ptr when compiling with GCC >= 4.4
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34600 a592a061-630c-0410-9148-cb99ea01b6c8
2010-06-05 11:06:13 +00:00
Enrico Forestieri
08f2841940 Fix reverse search when the filename contains a forbidden character
(including, but not only, spaces).


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34390 a592a061-630c-0410-9148-cb99ea01b6c8
2010-05-08 23:53:35 +00:00
Peter Kümmel
21514ad512 Seems boost also includes all std headers. Not including boost therefore produces errors.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34260 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-22 11:45:34 +00:00
Peter Kümmel
61b2bd5e7f Using "using namespace std" with msvc10 makes also std::tr1::bind visible and generates conflicts with boost::bind.
Solution: don't use boost::bind for msvc10 (could also be extended  to several GCC versions)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34257 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-22 11:16:58 +00:00
Pavel Sanda
72a6c77a51 support:
frontends:
onlyFilename -> onlyFileName

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34240 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-21 01:19:28 +00:00
Pavel Sanda
41b81f09e1 Forgot these two.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34237 a592a061-630c-0410-9148-cb99ea01b6c8
2010-04-21 01:19:23 +00:00
Richard Heck
13746b6d82 Micro-optimization.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33675 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-08 14:55:33 +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
Tommaso Cucinotta
78874e5f27 When zooming in/out with [Ctrl] + [Mouse Wheel], document WA's font is immediately updated, but if the Advanced F&R dialog is shown, its own WAs' font (find WA and replace WA) is not immediately updated, but delayed until the next editing action.
This commit fixes such behaviour, and performs the update immediately.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32794 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-06 18:36:13 +00:00
Tommaso Cucinotta
f3b3f62d5b Added isInternal() method, mapped temporarily on check about ".internal" filename extension (minimum impact on current code).
Replaced various replica of such check with the invocation of the new method.
TocBackend now does not call addToToc() for internal buffers.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31340 a592a061-630c-0410-9148-cb99ea01b6c8
2009-09-08 01:29:07 +00:00
Vincent van Ravesteijn
c0dac43600 Release children of a master if the children don't have a default master. It was already proven that the child is a child of the master, but the check the other way around failed when child->parent() was zero.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31072 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-16 00:19:27 +00:00
Richard Heck
c5487a3682 Move emergencyWrite() from BufferList to Buffer.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31056 a592a061-630c-0410-9148-cb99ea01b6c8
2009-08-15 16:34:54 +00:00
Pavel Sanda
c155dcbfe9 cosmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30780 a592a061-630c-0410-9148-cb99ea01b6c8
2009-07-25 16:43:28 +00:00
Enrico Forestieri
d4f00122eb Fix bug #6020: Reverse DVI/PDF search fails with child documents.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30214 a592a061-630c-0410-9148-cb99ea01b6c8
2009-06-22 05:09:01 +00:00
Enrico Forestieri
ea3484337f Remove unneeded include.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29826 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-23 13:28:41 +00:00
Enrico Forestieri
d1ebeea288 This was not needed, as the case is already adjusted.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29823 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-23 13:13:32 +00:00
Enrico Forestieri
6d1d27eb90 Take into account file system case sensitivity when checking whether
a path starts with a given prefix.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29793 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-22 22:34:43 +00:00
Enrico Forestieri
ccc77c73da Speed up FileName operator== (Georg's solution).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29498 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-02 17:12:31 +00:00
André Pönitz
f1cba8ff64 more latin1..utf8 schanges. all of src/* should be utf8 now
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27425 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-14 15:58:50 +00:00
Jean-Marc Lasgouttes
536f1d4878 remove useless assertion
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27052 a592a061-630c-0410-9148-cb99ea01b6c8
2008-10-23 12:25:52 +00:00