The goal here is to get rid of the old code that modified variables
LANGUAGE and LC_ALL, therefore creating the problems mentionned
in the ticket.
In the new system, there is no explicit "GUI" message handler, that
needs to be reset at each language change. Instead, getGuiMessages
calls getMessages with the correct parameter. This allows to simplify
greatly the code and to remove a lot of old cruft.
The idea is to record undo at the place where the document is modified:
1/ in Buffer::updateBuffer, add a recordUndo, with the caveat that a
const_cast has to be used (because updateBuffer is const but
modifies the document, go figure).
2/ in GuiApplication::dispatch, add an extra undo group that
encompasses the updateBuffer call. Some other undo groups may be
redundant now, but it is not a problem since they do not cost
anything.
This allows to workaround the problem in #8198 - on some systems
we get dead caron as a single character instead of whole combined
character. I suppose this has rather something to do with X settings
than LyX per se.
In this version, the idea is to record undo at the place where the document is modified, which is definitely cleaner.
1/ in Buffer::updateBuffer, add a recordUndo, with the caveat that a
const_cast has to be used
2/ in GuiApplication::dispatch, add an extra undo group that
encompasses the updateBuffer call. Some other undo groups may be
redundant now, but it is not a problem since they do not cost
anything.
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.
While cppcheck did not turn out any suspicious error messages, using
the "performance" flag highlighted several nitpicks in three categories
* do not use it++ for iterators, ++it is better
* do not use size() to test for emptyness, empty() is here
* do not use "const T" as a function parameter, "const & T" is better
I doubt that any of these is a real performance problem, but the code is cleaner anyway.
When there is a single document open, the tabbar gets hidden. The only and selected tab is still visible though as a break in the line delining the tabwidget. To fix this we paint the tabwidget ourselves and remove the presence of the hidden tab.
The check whether fname != oldname does not work for unnamed buffers.
Therefore, we check explicitly whether the Buffer that already exists with
the same name isn't really the buffer we are trying to save.
If no mask is supplied or the mask is attached to the end of the filename, we end up with unexpected names like
<system-temp-dir>\lyx_tmpdir.qHp780.vcr780_<mask>
instead of a temporary file in the lyx temporary directory like
<system-temp-dir>\lyx_tmpdir.qHp780\<mask>.vcr780.
The signature of the character in cache should take into account the
change tracking baseColor (author) and mergeColor (added/deleted). If not,
we will mixup different cached pixmaps.
Both bugs above were due to a missing screen update. This patch
updates the current view after dispatching a lyxserver command
and thus solves both.
The patch is quite strightforward and the only difficulty was due
to the fact that the lyxserver needs the result of the dispatched
command. Now, GuiApplication::dispatch(FuncRequest const &) does
right this, but does not return the result, while
GuiApplication::dispatch(FuncRequest const &, DispatchResult &)
is called by the former but does not return the result. So, I
split the first one, isolating the code performing the update,
such that the second one can also update the current view when
the caller is the lyx server. When the action is initiated by
anything different from the lyx server, the behavior is unchanged.
The listings inset and include inset of type listings use two english terms
that are not localized yet: "Listing" for the caption and "Listings" for the
list of listings (not supported natively by LyX yet). The existing layout
translation mechanism has been extended to translate these terms as well:
1) Support [[stuff]] context in lib/layouttranslations
2) Support BabelPreamble and LangPreamble in InsetLayout
3) Use a InsetLayout for InsetInclude of type listings
4) Define BabelPreamble and LangPreamble in the layouts for InsetInclude
and InsetListings
Setting up .gitignore or .git/info/excludes is something that should
be done. Not doing it makes it a lot harder to see actual new files
that should be added.
Signed-off-by: Lars Gullik Bjønnes <larsbj@gullik.org>
- Enter in the textfield adds the branch,
- Make sure the dialog is not closed when pressing enter,
- Pressing Ctrl+Enter or the Enter on the numpad closes the dialog.
Patch based on a patch from Scott Kostyshak.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40839 a592a061-630c-0410-9148-cb99ea01b6c8
Add a new layout syntax CiteEngine to define the citation commands
available for a given citation engine.
Also extend the CiteFormat syntax to allow more customization. This
mechanism, previously used to produce bibliography entries in the
citation GUI based on the BibTeX entrytype, is now also used to
produce the textual labels for citation insets in the buffer view.
Thus citation styles are almost completely customizable by modules.
Modules for the basic, jurabib and natbib engines are implemented.
Layout format incremented to 37.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40820 a592a061-630c-0410-9148-cb99ea01b6c8
After the timeout elapses, the user is notified that a command is taking
a long time to complete and is given the choice to stop it. If the user
decides to let the command run, the timeout is increased, otherwise the
command is killed. One is prompted a first time after 3 mins, a second
time after 9 mins, a third time after 27 mins, and so on, i.e., the n-th
prompt occurs after 3^n minutes.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40775 a592a061-630c-0410-9148-cb99ea01b6c8
then trying to compile.
There are really two problems here. One is that the renamed
buffer needs to be reloaded. All kinds of files, etc, may not
exist any more, if we've been saved to a new directory; our
children e.g. may not be in the right place. And, in this case,
we may no longer be a child of our old parent. Reloading will
fix all of that.
On reload, though, we need to clear our parent, since we may
not have one any more. It will get reset if need be.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40609 a592a061-630c-0410-9148-cb99ea01b6c8
To avoid duplicity, remove natbib_authoryear and natbib_numerical
and replace them by natbib, and keep track of the engine `type'
in the new \cite_engine_type document setting. This will make it
easier to add more citation engines.
LyX format incremented to 424.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40592 a592a061-630c-0410-9148-cb99ea01b6c8
Gcc 4.7 warns that this kind of narrowing is illegal in C++11, so
we can just as well fix that right now.
In GuiFontMetrics this is fixed by chaning the types in the AscendDescend struct
from short int to int.
In ParagraphMetrics it is fixed by addint explicit casts.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40586 a592a061-630c-0410-9148-cb99ea01b6c8
Gcc 4.7 warns rightly about the questionalble practise of having different types in
the ?: operator. This patch fixes that.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40585 a592a061-630c-0410-9148-cb99ea01b6c8
also when switching from an editable buffer to a read-only buffer,
without waiting for the moment in which the dialog is focused.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40582 a592a061-630c-0410-9148-cb99ea01b6c8
Internal machinery, no file format change and no UI change yet
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40562 a592a061-630c-0410-9148-cb99ea01b6c8
This option is set to true by default as this is the most widespread use case.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40515 a592a061-630c-0410-9148-cb99ea01b6c8
the name we are trying to write in the BufferList, since the file
gets a name when it is created.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40489 a592a061-630c-0410-9148-cb99ea01b6c8
Previous commit did not distinguish whether the changes were applied or cancelled.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40487 a592a061-630c-0410-9148-cb99ea01b6c8
iff bibliography settings are changed in the document settings.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40486 a592a061-630c-0410-9148-cb99ea01b6c8
a new paragraph, which is very annoying. This commit fixes this bug.
If anyone has a better idea, please let me know. I posted to devel
about it but got no response.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40456 a592a061-630c-0410-9148-cb99ea01b6c8
tells LyX not to show BLOCK text as justified, but still keeps
the usual paragraph indentation.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40427 a592a061-630c-0410-9148-cb99ea01b6c8
over-writing a file that is already open. So we issue a warning and
ask if they'd like to try a different name.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40420 a592a061-630c-0410-9148-cb99ea01b6c8
- let icons install into proper locations
- use theme routines to load proper icon
(using this for loading toolbar icons would be another
step how to synchronize LyX with its environment.)
Patch from Timo Kluck.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40418 a592a061-630c-0410-9148-cb99ea01b6c8
LFUN_INSERT_PLAINTEXT is handled in GuiView because it might need to ask for a filename. But if the filename is given as a paramater we can handle it in BufferView immediately. Also, when we've asked for the filename in GuiView we should dispatch the LFUN to BufferView in order to properly use the Undo mechanism.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40377 a592a061-630c-0410-9148-cb99ea01b6c8
We split Buffer::clone() into various routines that know whether
to clone the children.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40357 a592a061-630c-0410-9148-cb99ea01b6c8
Of course this will only work if output_changes was true when creating the
.tex file.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40139 a592a061-630c-0410-9148-cb99ea01b6c8
We need to have a special callback for when the autosave thread is finished
such that we can process the return values properly (and different as in
case of export or preview).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40103 a592a061-630c-0410-9148-cb99ea01b6c8
under Document>Settings>Output.
It turns out that we always want this list to be sorted when we get it,
so we can sort it in BufferParams rather than in three different places.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40101 a592a061-630c-0410-9148-cb99ea01b6c8
All calls to doExport from outside of Buffer have the same algorithm to
determine whether the included children parameter should be true. Moreover,
this decision is only based on information from the Buffer itself.
Now, Buffer only has 1 public function doExport and preview.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40041 a592a061-630c-0410-9148-cb99ea01b6c8
- This preference was used for specifying the papersize to xdvi, dvipdfm,
dvips. However, I can't seem to see any effect on the result.
- The papersize should instead be defined in the document settings.
- The global papersize default was misused to also change the tex
output by specifying the papersize as if it was specified in the
document settings. This caused the same lyx document to be outputted
differently on different pcs.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40028 a592a061-630c-0410-9148-cb99ea01b6c8
I also added 2 FIXME where we should not call GuiView directly.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39948 a592a061-630c-0410-9148-cb99ea01b6c8
- Interpret argument of LFUN_SPACE_INSERT correctly
- Use InsetMathSpace instead of InsetMathSpecialChar for "\ " (bug # 7728)
- Use InsetMathSpace instead of InsetMathChar for ~ (bug # 7728).
This fixes also the display in LyX (previously a literal ~ was displayed).
Using InsetMathSpace enables also the "Insert Formatting" menu entries.
No file format change is needed, since the LaTeX export is unchanged.
Note that there are still some bugs related to spaces in math:
#7746, #7747, #7749, #7842
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39947 a592a061-630c-0410-9148-cb99ea01b6c8
This reverts commit r39809. Some LFUNs require newline characters,
and while at the moment we don't have a proper interface for such
LFUNs, copy-pasting newlines has been a long-time workaround.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39893 a592a061-630c-0410-9148-cb99ea01b6c8