Commit Graph

89 Commits

Author SHA1 Message Date
Juergen Spitzmueller
e6666bd62a Generalize starred cite commands
Not all of them expand the author list. Thus rename the parameter to
hasStarredVersion and provide a means to adjust the GUI accordingly.
2017-01-03 17:25:41 +01:00
Juergen Spitzmueller
958f6193ed Differentiate InsetCite
Next to the cmd name, introduce optional latex names (that might differ
from the cmd name) and aliases (that are "obsoleted by" the cmd).

This enhances portability between the engines.
2017-01-03 13:11:11 +01:00
Juergen Spitzmueller
7d4292918e Remove unnecessary directives and preset search on fly. 2016-09-18 09:10:24 +02:00
Juergen Spitzmueller
3294b16bf6 Keep citation style settings bot within and between sessions.
Fixes: #10256
2016-09-16 19:39:53 +02:00
Juergen Spitzmueller
0c1a023c70 Citation dialog: add & improve tooltips. 2016-09-16 13:47:26 +02:00
Juergen Spitzmueller
824e24ca60 Citation dialog redesign 2016-09-16 09:21:04 +02:00
Guillaume Munch
82d4f1a446 Replace static with thread_local when used for caching
thread_local is a per-thread static variable, so it is thread-safe and can be
used for caching purpose.

Remove the cache for parameter lists as discussed on the list
http://mid.gmane.org/6e871431-0e87-ed2a-3e31-b63356c2391e@lyx.org.

(requires gcc >= 4.8)
2016-08-01 23:44:16 +01:00
Richard Heck
6675601147 Fix a number of other uninitialized members.
Fixes coverity #23392, 23394, 23397, 23403, 23414, 23424,
23448, 23477.
2016-06-11 23:59:55 -04:00
Georg Baum
273c67d8aa Require a C++11 compiler
As discussed on the list. If no C++11 compiler is found configuration stops
with an error. There are now unneeded parts of boost, the will be removed in
a second commit.
2016-06-07 20:34:52 +02:00
Guillaume Munch
576cb5df77 LyXToolBox: a QToolBox with minimum size management
The purpose of this custom widget is to allow the use of a QToolBox in a limited
area. The stock QToolBox does not provide a minimum size hint that depends on
the size of the pages; it assumes that there is enough room.  This subclass sets
the minimal size of the QToolbox. Without this, the size of the QToolbox is only
determined by values in the ui file and therefore causes portability and
localisation issues. Note that the computation of the minimum size hint depends
on the minimum size hints of the page widgets. Therefore page widgets must have
a layout with layoutSizeContraint = SetMinimumSize or similar.
2016-05-28 17:42:32 -04:00
Guillaume Munch
86227b196d Citation dialog: Fix trouble with openbox, fluxbox
http://thread.gmane.org/gmane.editors.lyx.devel/161725

These wms have trouble with the fix at b5a2f1c7, probably more precisely with
the trick to force the calculation of the actual sizes before the display
(layout->invalidate() and the code around it).

This patch gets rid of the code that forces the calculation. As a consequence,
the minimum sizes are again incorrect the first time the window is shown. They
are only correct the second time the window is shown. Now here is the trick: LyX
remembers the sizes of windows between sessions. Therefore, as soon as the good
minimum size has been set, the good size is remembered for the next
session. Thus, in the following sessions, even though the minimum size is
incorrect the first time, the dialog still opens with the good size. So the user
does not see the problem in practice, apart from the very first time.

This is meant as a temporary workaround.
2016-04-24 14:05:54 +01:00
Guillaume Munch
b5a2f1c7e5 Fix broken layout of the citation dialog (#10019)
7b1107d7 introduced the following inconveniences which are regressions to 2.1:

* The citation dialog can open with vertical scroll bars in the options

* The citation dialog can open with horizontal scroll bars, especially if the
  translated text is longer than the original text (e.g. in FR)

* Resizing the dialog is inconvenient because it increases the gap between the
  options. This is unlike before when the dialog could let us see more of the
  reference list when enlarging.

This is because the QToolbox that the above commit introduced is not natively
aware of the sizes of its page sub-widgets. The widget is not conceived for this
use, where the space is scarce.

Geometry values provided in the ui file (automatically computed by qtcreator I
suppose) somehow gave the illusion that it worked, but relying on such values is
not portable : it does not take into account the specific theme, font sizes and
localization. This explains why it failed on my side and will probably fail in
other settings too.

Luckily, there is a simple way to make QToolbox suitable for the current use,
which is to add the "missing link" which computes its size based on the minimal
sizes of its pages. The result looks very nice and intuitive. It solves all the
aforementioned issues.
2016-04-04 17:58:16 +02:00
Georg Baum
e8211fb931 Fix C++11 std::regex incompatibility
boost::regex supports escape sequences starting with a backslash in format
strings of regex_replace, but std::regex does not. Therefore format strings
involving literal backslashes have to be written differently for both flavours.

The special MSVC handling in regex.h is removed, since it is not needed
anymore, and using grep syntax would definitely be wrong.
2015-11-24 20:31:14 +01:00
Guillaume Munch
dbce5cafcc Rewrite regexes in ECMAScript style (bug #9799) 2015-11-18 01:52:50 +00:00
Stephan Witt
77cc2c7c8c Fix "dead store" warnings of Xcode analyze tool 2015-10-09 08:16:23 +02:00
Juergen Spitzmueller
7b1107d7f5 Decrease height of citation dialog by using a QToolBox
Fixes: #9618
2015-07-30 10:09:21 +02:00
Jean-Marc Lasgouttes
8bab23384a Fix the last clang warnings about overloaded virtual methods
This patch fixes a series of warnings like:
{{{
In file included from ../../master/src/mathed/InsetMathBoldSymbol.cpp:13:
In file included from ../../master/src/mathed/InsetMathBoldSymbol.h:15:
../../master/src/mathed/InsetMathNest.h:37:7: warning: 'lyx::InsetMathNest::metrics' hides overloaded virtual function [-Woverloaded-virtual]
        void metrics(MetricsInfo const & mi) const;
             ^
../../master/src/insets/Inset.h:186:15: note: hidden overloaded virtual function 'lyx::Inset::metrics' declared here: different number of parameters
      (2 vs 1)
        virtual void metrics(MetricsInfo & mi, Dimension & dim) const = 0;
                     ^
}}}
For a description of the problem, see for example:
http://stackoverflow.com/questions/18515183/c-overloaded-virtual-function-warning-by-clang

3 different strategies have been used:
 * in frontend, some functions have been renamed.
 * in InsetMath.h, Inset::write has been explicitly imported too
 * in InsetMathNest.h, since a comment said that hiding Inset::metrics is intended, a special trick has bee used to silence the warning.
2014-12-22 11:02:45 +01:00
Richard Heck
b992968a15 Fix bug #9131 for development branch. There are two parts to the fix.
The firs tinvolves a thinko in BibTeXInfo::expandFormat. We were previously
counting passes through this routine, which means: one for every character,
more or less. So long strings would hit the "recursion limit". But what
we are worried about is an infinite loop caused by misues of macros, so that
is what we need to count.

This prevents the error we were previously getting, but it reveals a huge
slowdown when one tries to open a citation inset with a large nubmer of keys.
So we also limit the number of keys we try to process, and the length of the
string we try to display, when we are generating citation information.

I'm convinced that there is a deeper problem in how citation information is
generated (see the bug tracker for more info), but that will require major
surgery and a file format change
2014-05-23 11:26:45 -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
Scott Kostyshak
51c380440b Constify some catches and others 2012-09-17 04:05:34 -04:00
Julien Rioux
1e947e3a18 Move the citation engine machinery to layouts.
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
2012-03-01 00:41:30 +00:00
Julien Rioux
e3f65fd088 Buffer param \cite_engine_type (authoryear|numerical).
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
2012-01-09 13:16:38 +00:00
Julien Rioux
0c4e88b8a0 Minor improvements to the citation GUI: some dimensions and tab ordering.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40350 a592a061-630c-0410-9148-cb99ea01b6c8
2011-12-03 22:24:51 +00:00
Julien Rioux
dfdcc56cba Remove extra whitespace.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40346 a592a061-630c-0410-9148-cb99ea01b6c8
2011-12-03 22:15:11 +00:00
Tommaso Cucinotta
e410730dd9 We use the main document's buffer() instead of the current buffer(), so as to catch the citations
defined there, also while using the dialog from the Adv F&R WAs.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38866 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-27 21:54:23 +00:00
Tommaso Cucinotta
492d837e62 Use the main document's buffer(), when scanning for citations from within the citation dialog.
This allows to pick and search for citations present in the main document.

This was started to be discussed in a relatively unrelated bug #7581, then the patch
was proposed here: http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg169277.html


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38847 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-26 17:33:36 +00:00
Richard Heck
ab47822680 Towards a proper fix for bug #6846, this just disentangles a couple
things we will ultimately want to do separately.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36694 a592a061-630c-0410-9148-cb99ea01b6c8
2010-12-03 19:00:55 +00:00
Richard Heck
f3ff65f4df Fix bug #7066.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36454 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-24 14:45:27 +00:00
Vincent van Ravesteijn
c5b9664476 Remove the name parameter from string2params and params2string. We can always derive the name with insetName(params.code()).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35891 a592a061-630c-0410-9148-cb99ea01b6c8
2010-10-29 00:25:28 +00:00
Peter Kümmel
615d42d357 TR1: use std::tr1 regex with msvc10
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34725 a592a061-630c-0410-9148-cb99ea01b6c8
2010-06-29 17:09:40 +00:00
Richard Heck
f1912e1c33 Read the citation formats from a file, rather than hardcoding them. This
allows for layout- or module-level customization of the display in the
citation dialog and of the XHTML bibliography output.

There is more of this to come, by the way. The next step is to allow
macros. That will make it easier to deal with translation issues, which
ought to be the final step.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33920 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-29 18:37:25 +00:00
Richard Heck
5696be2a66 Allow the use of rich text in citation formats. And use them in the
citaton dialog.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33880 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-27 13:54:14 +00:00
Richard Heck
869f6d33c6 Revert r33852 and try something else. The problem here, which can be
seen in branch, too, is that if you change the style combo and then do
anything else, such as click on an entry, the combo reverts.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33858 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-24 15:49:06 +00:00
Richard Heck
625144c193 Block signals to the combo box when we update it. This fixes a problem
with flashing.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33854 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-24 14:50:20 +00:00
Richard Heck
a02114dcea Only restore the last applied style on initialization.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33852 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-24 14:34:05 +00:00
Richard Heck
559da350f0 Fix bug #6486. Patch inspired by work by John McCabe-Dansted.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33851 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-24 13:51:47 +00:00
Richard Heck
adf858ebcc Refactor a bit. This will be needed a bit later.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33849 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-24 12:04:24 +00:00
Vincent van Ravesteijn
f792df16b3 GuiCitation.cpp:
CitationUi.ui:
   - fix the casing
   - replace some informal expressions by some proper sentences (I don't like things like "Delete key works, too"

BiblioUi.ui:
   - "man bibtex" has no value in the non-linux world
   - stick to the BibTeX convention compared to bibtex

FindAndReplaceUi.ui:
   - fix the casing
   - remove the "current file" annotations
   - some other fixes


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33208 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-24 19:16:44 +00:00
Richard Heck
ce87e6767c Check the bibliography cache only when we really need to do so. This (a)
prevents weirdness that might happen if the .bib file were to change
during updateLabels(), (b) prevents even further weirdness that might
happen if it changed during the output routines, and (c) ought to avoid
slowness caused by the repeated calls to QFileInfo::refresh() needed to
check the cache status.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32972 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-11 16:29:26 +00:00
Richard Heck
833e7085dd A little cleanup of some of the BibTeX info access.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32915 a592a061-630c-0410-9148-cb99ea01b6c8
2010-01-09 16:57:08 +00:00
Uwe Stöhr
b2f0d517e2 GuiCitation.cpp: fix #5987
OK also for branch?

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30061 a592a061-630c-0410-9148-cb99ea01b6c8
2009-06-12 00:17:13 +00:00
Richard Heck
69e95a3ed9 The comment preceding getValueForField() reflected an earlier implmentation.
There is now no reason not to use operator[] here, which is more natural.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27635 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-19 04:16:12 +00:00
André Pönitz
1fc477efac thrid attempt at changing the naming pattern of the intermediated 'mocced' files
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27420 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-14 14:28:50 +00:00
Jürgen Spitzmüller
9d2f8a4c34 * GuiCitation.cpp:
- set initial focus (bug 5448).

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27245 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-04 07:27:02 +00:00
Richard Heck
419642ad9e Fix citation bug: In certain circumstances, attempts to insert a new citation
would instead change an old one. The problem was that we were hiding the dialog
with hide(), which does not trigger closeEvent(). So we have to implement
hideEvent().

http://marc.info/?l=lyx-devel&m=121278861019829&w=2



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@26143 a592a061-630c-0410-9148-cb99ea01b6c8
2008-08-13 14:32:30 +00:00
Richard Heck
83f0903b4a Optimize GuiCitation a bit by not checking the cache so often.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25716 a592a061-630c-0410-9148-cb99ea01b6c8
2008-07-19 17:23:13 +00:00
Richard Heck
55238f4dfd Don't need to do this check, as getInfo() will return an empty string in this case, anyway.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25715 a592a061-630c-0410-9148-cb99ea01b6c8
2008-07-19 16:36:14 +00:00
Richard Heck
7f6721a4e9 Clean up a bit.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25170 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-06 16:02:52 +00:00
Richard Heck
08d8a8034f Fix citation dialog bug.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25169 a592a061-630c-0410-9148-cb99ea01b6c8
2008-06-06 15:53:02 +00:00
Abdelrazak Younes
2cf301033e Add session to citation dialog.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24768 a592a061-630c-0410-9148-cb99ea01b6c8
2008-05-14 14:37:33 +00:00