Commit Graph

81 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
7760c5ccf2 Create proper undo groups for advanced find and replace
Create new helper class UndoGroupHelper, which simplifies a lot the
handling of undo groups in cases like this one. The class tracks open
undo buffers and allows to switch buffers transparently.

Using the class for advanced search and replace is trivial. THe class
may be useful in some other classes.

Fixes ticket #8658
2015-05-22 16:42:10 +02:00
Georg Baum
84cca2dd94 Fix indentation 2015-05-17 17:27:27 +02:00
Stephan Witt
3aa428fdea #9245 replace Q_WS_MACX with Q_OS_MAC - the Q_OS_MAC macro is usable with Qt4 and Qt5. 2014-08-25 20:08:59 +02:00
Richard Heck
065db68067 Fix a bunch of minor issues discovered by the cppcheck script. 2014-04-21 11:52:00 -04: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
Tommaso Cucinotta
b93f2c20d3 Added restrict-search-to-maths-only checkbox to advanced pane of Advanced F&R. 2013-10-13 00:59:46 +01:00
Pavel Sanda
4c0ef38200 Header cleanup cont. 2013-05-19 18:07:53 -07:00
Tommaso Cucinotta
bd9e8fecd3 Automatic horiz/vert switch also for Advanced Tab (completing e3677975). 2013-05-05 15:09:53 +01:00
Tommaso Cucinotta
e36779755e Automatic horiz/vert switch of layout when docking Advanced F&R pane top-bottom/left-right (copying 49c2450f). 2013-05-05 14:08:40 +01: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
Richard Heck
7ef8df460a Fix crash reported by Tommaso:
http://marc.info/?l=lyx-devel&m=133876924408431&w=2
The problem here is that the copy_params() routine in FindAndReplace.cpp
created a new DocumentClass, but it never updated its Buffer to reflect
that new DocumentClass. So its Paragraphs still contained points to the
Layouts in the old DocumentClass which, since ead697d4b6, gets garbage
collected once it is no longer needed. So the Layout doesn't exist, and
we crash.
2012-06-04 13:39:24 -04:00
Tommaso Cucinotta
9e57044ff1 More useful message (tells the user that ESC cancels the long operation in progress).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40878 a592a061-630c-0410-9148-cb99ea01b6c8
2012-03-06 23:26:19 +00:00
Tommaso Cucinotta
c324d6eae6 Now ESC cancels long Advanced Find and Replace operations.
(see #7217 and #7965 for related issues and discussion)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40877 a592a061-630c-0410-9148-cb99ea01b6c8
2012-03-06 23:21:12 +00:00
Tommaso Cucinotta
6f0cc0cecd Moving the GUI consistency update to a more meaningful moment, i.e., when Dialog::updateView() is called.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40549 a592a061-630c-0410-9148-cb99ea01b6c8
2011-12-30 21:26:51 +00:00
Tommaso Cucinotta
7422c56d67 Fixing consistency of replace actions in GUI with readonly status of target document buffer
(i.e., it was possible to replace in readonly buffers!)
See also http://comments.gmane.org/gmane.editors.lyx.devel/140074


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40548 a592a061-630c-0410-9148-cb99ea01b6c8
2011-12-30 15:31:56 +00:00
Tommaso Cucinotta
c3f3ead287 Fixing #7410 (weird stale selection leads to assertion after replace all).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40528 a592a061-630c-0410-9148-cb99ea01b6c8
2011-12-20 00:02:51 +00:00
Vincent van Ravesteijn
2a9f282cc4 Fix a crash in adv F&R when the a manual could not be loaded
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40027 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-27 09:31:17 +00:00
Tommaso Cucinotta
466af97c39 Addressing #7581: now I'm copying the document class as well
from the main document WA to the find/replace WAs (in addition
to the language, as required for addressing #6560).
I'm not cloning the whole BufferParams because we learned
from

  http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg168175.html

that, for example, if we inherit the default master by mistake,
then we may run into problems.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38819 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-22 21:09:57 +00:00
Tommaso Cucinotta
c23eef3abf Still addressing #6560: instead of cloning the BufferParams, which might cause
a number of unforeseen issues (like the inheritance of the default master, as
pointed out in http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg168225.html),
now we simply set the language into the search & replace buffers.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38647 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-08 23:51:44 +00:00
Tommaso Cucinotta
8fd06ad27c Fixed overlapping of both Find Advanced and Spellchecker Dockwidgets (addressing #7375).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38133 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-29 20:51:40 +00:00
Tommaso Cucinotta
a17d3460f6 Implements functionality of the replaceAll button on Advanced F&R.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37853 a592a061-630c-0410-9148-cb99ea01b6c8
2011-03-04 22:19:19 +00:00
Tommaso Cucinotta
fcae022192 Search and replace buffers are now passed from the GUI to the Model
just by their file-name, and directly accessed there.
All string/latex exporting of those buffers is handled on the Model
side (lyxfind.cpp) according to the selected options.
Fixed bugs when searching with ignore-format disabled material
in the middle of a paragraph, and when using regular expressions.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37549 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-07 20:36:40 +00:00
Tommaso Cucinotta
fcd769c58c Fixed focusing issue when dialog already open on lyx start,
and added selection of entire find/replace WAs when switching
among them on Tab/Alt+Tab.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37413 a592a061-630c-0410-9148-cb99ea01b6c8
2011-02-02 08:55:59 +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
Vincent van Ravesteijn
3d08e82957 LyX remembers the state and geometry of the advanced find and replace dockview.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37121 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-06 00:52:46 +00:00
Tommaso Cucinotta
78eecdabf8 Avoid crash on exiting LyX while Adv Search is shown in full-screen mode.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37115 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-05 15:08:08 +00:00
Vincent van Ravesteijn
d23120b3ba Fix bug 7137: Main WA disappears on wrap-around dialog.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37085 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-03 20:04:03 +00:00
Tommaso Cucinotta
dbb3f12aa5 Also copying the document language to the find/replace WA cursors' current language. This avoids typing in the replace WA results in underscored text while editing non-English documents.
This addresses (and hopefully closes) #6171.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37058 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-31 15:07:03 +00:00
Tommaso Cucinotta
426c5671d5 Copy document params (including language settings) to find and replace WAs buffers on activation of Advanced Search.
This hopefully fixes #6171, i.e., when copying from main document with non-English language to find/replace WAs,
the pasted text is not underlined anymore.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37057 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-31 14:35:16 +00:00
Tommaso Cucinotta
fab8c264aa Applying (variation of) fix by stwitt to solve #7172.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37043 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-29 19:59:41 +00:00
Abdelrazak Younes
1614a64e15 TeXOnePar() simplification: use pit_type instead of iterator
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36936 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-18 15:57:27 +00:00
Pavel Sanda
8435660410 This string composition badly fails on some languages since as a translator
you have no clue about the context for the proper grammatical case.

I'm not particularly happy about the fix, but didn't see much better alternatives.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36532 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-27 03:04:56 +00:00
Tommaso Cucinotta
f8e4f97b67 Finalize macros that are being typed (both in main document WA and in search/replace one), right before starting an advanced search/replace operation.
Fixes #6887.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36423 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-21 15:45:35 +00:00
Richard Heck
346f3aa503 Clean up this code a little bit.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35540 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-29 13:14:20 +00:00
Richard Heck
d07c00032a Simplify some of the find and replace code now, since allRelatives() is
stable and always has the root document at the beginning.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35535 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-29 12:50:24 +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
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
Edwin Leuven
b768107db9 adv search/replace: move insert regexp to context menu
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33871 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-26 14:46:51 +00:00
Edwin Leuven
e7b1808827 simplify adv search/replace layout
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33867 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-25 16:57:39 +00:00
Enrico Forestieri
d95b35dad8 Fix for Qt 4.2 (patch mostly from JMarc).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33848 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-24 08:50:06 +00:00
Edwin Leuven
ffaf512593 - make the advanced search/replace dialog play nice with size
- add frame

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33821 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-21 11:50:13 +00:00
Tommaso Cucinotta
57aa866a1c Fixed issues in backward search in various corner cases (fixed #6482 and #6596).
Now, when scope includes multiple documents, the switch_buffer LFUN is only issues if buffer actually changes.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33812 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-20 13:59:46 +00:00
Vincent van Ravesteijn
cabde10fa3 Adjust the window settings for MacOSX.
- No more Drawers,
- ProgressView and SourceView are docked at the bottom,
- SpellChecker, FindAndReplace and Outline are floating by default, but dockable.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33716 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-11 19:33:08 +00:00
Jürgen Spitzmüller
676aca028d * FindAndReplace.cpp:
- correct strings, following the attempt at r33252.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33255 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-29 08:59:09 +00:00
Vincent van Ravesteijn
347d4a7d3e Rewrite FindAndReplace::eventFilter() and make it more human-readable.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33238 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-27 19:17:18 +00:00
Tommaso Cucinotta
e6fbc8bc72 Get rid of non-existent slot warning after removal of Close button.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33237 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-27 18:38:43 +00:00
Jürgen Spitzmüller
e4f796aee7 FindAndReplace.cpp: line length and formatting blues
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33221 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-25 08:06:26 +00:00
Jürgen Spitzmüller
995471b16d * add forgotten l7n tags.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33218 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-25 07:23:58 +00:00
Jürgen Spitzmüller
138a4f8e9c * FindAndReplace{cpp,h,Ui.ui}: some UI plishment.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33217 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-25 06:58:54 +00:00
Jürgen Spitzmüller
b33608452a * FindReplace.cpp:
- de-modularize message. It's impossible to properly translate such LEGO-strings.
	  Also mark the scopes, due to their syntactic case.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33172 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-23 09:15:37 +00:00