Commit Graph

5084 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
8aa2d6b184 Fix setting Interlingua as GUI language
The problem came from the fact that Qt associates Interlingua to locale C.
Now, we do not rely anymore on the Qt locale to set the language. I suspect that the problem will still exist if the system locale is ia_IA.

Fixes bug #9267.
2015-03-17 12:37:24 +01:00
Juergen Spitzmueller
187c5f0ef5 Use QLocale::toDouble instead of QString::toDouble in the length validator
Fixes: #9214
2015-03-15 11:48:36 +01:00
Enrico Forestieri
7be2a5d815 Prefer svg icons.
If a compressed svg icon is present, load it instead of a png one.
Also introduce two more sizes (huge and giant icons) that should be
useful when using hires displays, as svg icons automatically scale
to the desired size without loss of quality.
2015-03-13 00:47:21 +01:00
Jean-Marc Lasgouttes
143c136a7f Do not read array before checking the bounds
Fixes coverity issue 23377
2015-02-20 16:51:20 +01:00
Georg Baum
7adc6125f7 Fix missing symbols in math completer
The math icons for the symbol image in the math completer were hardcoded to the
command names. This is wrong for some icons for various reasons, e.g. the case
insensitivity of windows file systems. Therefore we have to use the replacement
list which is also used for the toolbar icons. Bug #3538 is not closed because
of this problem, but IMHO it has nothing to do with this bug, it is a more
general one.
2015-02-14 20:32:25 +01:00
Scott Kostyshak
36c3495a3a Correct the spelling of "occured" to "occurred" 2015-02-09 18:44:02 -05:00
Juergen Spitzmueller
d48e5330be Add pref option to disable middle-mouse-button paste
Fixes: #9399
2015-02-08 17:41:28 +01:00
Enrico Forestieri
e3960ffd0b Fix bug #9392: Matrix widget keyboard navigation broken 2015-01-27 22:59:33 +01:00
Uwe Stöhr
95bf60b52b ParagraphUi.ui: update file to QT's xml format 2015-01-22 01:07:40 +01:00
Enrico Forestieri
f496ec373b Solve the "soft-hyphen" (0x00ad) symbol problem.
After the str-metrics merge, the kludge for displaying symbols whose
code point corresponds to a soft-hyphen was not working anymore.
The solution is replicating the offending glyphs with index 0x00ad
at a different index. They were replicated at 0x00ac, whose glyph
was missing in all affected fonts.

However, this would not work by alone because, if a system font with
same family name exists, it would be picked up instead of the right one
(at least on non-Windows platforms). For this reason, the style of the
fonts has been changed from "Regular" to "Lyx", so that we can discriminate
the right font. However, this requires using at least Qt 4.8. If an
older Qt is used *and* a system font with same family name is already
available, the affected glyphs will all turn out on screen as the
"logical not" symbol.

I have also set the executable flag on the font files, because on Windows
they are loaded only in this case.

This solves #9229.
2015-01-21 14:12:42 +01:00
Jean-Marc Lasgouttes
3830ce46db Squash warnings reported by gcc 4.9
Most of these are just about conversion from double to int.

Of note also the replacement of an horrible reinterpret_cast by a proper solution.
2015-01-14 11:52:14 +01:00
Enrico Forestieri
35357c1225 Fix preferences panel.
This commit fixes a thinko in [8bab2338/lyxgit] causing the warning:
QObject::connect: No such slot lyx::frontend::GuiPreferences::slotApplyRC() in ../../../../src/frontends/qt4/GuiPrefs.cpp:3308
QObject::connect:  (sender name:   'applyPB')
QObject::connect:  (receiver name: 'PrefsUi')
2015-01-11 20:11:40 +01:00
Enrico Forestieri
d4428ceb81 Adjust preprocessor guards for Qt5/X11.
This fixes the -geometry command line option and restores the
"Use icons from system's theme" checkbox in the preferences.

There is still code addressing Qt4 and xlib that has to be
audited. This code cannot be compiled with Qt5 because the
default backend is now xcb and not xlib. I have marked such
code with a "FIXME QT5" comment.
2015-01-11 19:44:35 +01:00
Jean-Marc Lasgouttes
9c55af4a22 Merge remote-tracking branch 'features/scroll-reloaded'
This implement horizontal scrolling of rows to allow editing insets
(math, tabular...) that are larger then the screen. The scrolling happens
as the cursor moves, in order to make sure that the cursor is always visible.
This effectively closes an 11 years old bug.

This feature is the result of the work of Hashini Senaratne as part of
Google Summer of Code 2013. The code has been cleaned-up for inclusion
and remaining bugs have been fixed.

Fixes bug: #1083.
2015-01-10 18:39:09 +01:00
Hashini Senaratne
5a361b35cf Keyboard based horizontal scrolling for wide insets
[This commit is the output of the "horizontal scrolling" GSoC 2013
 project, by Hashini Senaratne. The code has been cleaned up, some
 variables have been renamed and moved from the Cursor class to
 BufferView::Private. This is the base from which I (jmarc) will polish
 the feature for landing on master.

 Below is the original commit log of Hashini, updated to reflect the
 changes that have been done.]

This feature also applicable for other insets; graphics and labels.

This implementation is capable of scrolling a single row when reaching
its content which is beyond the screen limits, using left and right
arrow keys.

The attribute 'horiz_scroll_offset_' introduced in the
BufferView::Private class plays a main role in horizontal scrolling of
the wide rows that grow beyond the screen limits. This attribute
represents by how much pixels the current row that the text cursor
lies in should be get scrolled.

The main logic that is responsible for drawing the scrolled rows is
within the BufferView class, BufferView::checkCursorScrollOffset.

 * The main logic is called via BufferView::draw.

 * What this does is set the horiz_scroll_offset_ attribute in in order to
 show the position that the text cursor lies in.

 * To make sure that BufferView::draw gets involved when Update flag is
 FitCursor, necessary changes are made in BufferView::processUpdateFlags.

Basically what the logic that used to set the horiz_scroll_offset_
does is,

 * The row which the text cursor lies in is identified by a
 CursorSlice that points to the beginning of the row. This is the
 'rowSlice' variable used in BufferView::checkCursorScrollOffset. Acessors
 are added to obtain this variable. Here row objects were not used to
 identify the current row, because it appears that row objects can
 disappear when doing a decoration update for example. This means that
 comparing row pointers is not a good idea, because they can change
 without notice.

 * Stop calculations of horiz_scroll_offset_ variable, if metrics have not been
 computed yet. Otherwise the calls to TextMetrics::parMetrics, calls
 redoParagraph and may change the row heigths. Therefore vertical scrolling
 feature may get disturbed. This is avoided.

 * Using BufferView::::setCurrentRowSlice resets horiz_scroll_offset_
 when changing cursor row. This is done in order to prevent unwanted
 scrolling that happens when changing the selected row using up and
 down arrow keys.

 * Recompute inset positions before checking scoll offset of the row, by
 painting the row insets with drawing disabled. This is done because the
 position of insets is computed within the drawing procedure.

 * Current x position of the text cursor is compared with the
 horiz_scroll_offset_ value and the other variables like row.width(),
 bv.workWidth(). Compute the new horiz_scroll_offset_ value in order
 to show where the text cursor lies in. The basics conditions that we
 check before recomputing it are, if the text cursor lies rightward to
 the current right screen boundary, if the text cursor lies leftward
 to the current left screen boundary, if the text cursor lies within
 screen boundaries but the length of the row is less than the left
 boundary of the screen (this happens when we delete some content of
 the row using delete key or backspace key).

 * Change update strategy when scrooll offset has changed. This allows to
 redraw the row when no drawing was scheduled. By doing so, it was
 possible to redraw a wide row when moving to the leftmost position of the
 wide row, from the leftmost position of the row below, using the left
 arrow key.

In TextMetrics::drawParagraph it is checked whether the current row is
what is drawing now. If it is so, the value used to the x value of the row
for drawing is adapted according to BufferView::horizScrollOffset.

The method used to pass boundary() was fixed to get row when cursor was in
a nested inset. This matter is considered in Cursor::textRow and it is
modified accordingly.

GuiWorkArea::Private::showCursor() is modified to show the cursor position
in a scrolled row.
2015-01-07 22:55:11 +01:00
Vincent van Ravesteijn
c313b1c8eb str_metrics: Prevent clipping of chars with negative bearing
This happens when part of the word is selected.

To reproduce:
1. Start a new document
2. Type "af"
3. Select 'a'
4. Observe that the right part of the 'f' is clipped away.

This patch uses QRegion to set a clip region that is everything except
the part that is drawn in another color.

Fixes: #9223.
2015-01-06 22:02:07 +01:00
Juergen Spitzmueller
27a8abf768 Some casing fixes
English UI uses Title Casing for headers and sentence casing for normal widgets
2015-01-04 10:53:36 +01:00
Juergen Spitzmueller
3cd1d396ff Fix aspectratio UI
Fixes: #9357
2015-01-04 10:05:42 +01:00
Georg Baum
b0361fb3c5 tex2lyx: Run configure.py if needed (bug #8539)
Since tex2lyx reads some LyX config files it needs to run configure.py if
they do not exist or are out of date.
2014-12-29 23:46:25 +01:00
Enrico Forestieri
9126a99e97 Fix bug #9217: [Qt5] QWindowsMime class not available
The support for QWindowsMime has been reintroduced in Qt 5.4.0.
The class name has been changed to QWinMime but the interface
is exactly the same.
2014-12-26 16:53:31 +01: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
Juergen Spitzmueller
c9609fe56a Do not warn about changed modules when changing modules.
Part of #9356
Also fixes #9365
2014-12-21 19:10:13 +01:00
Juergen Spitzmueller
740d9162c0 When switching classes, warn user about all unapplied document changes
Currently, this is limited to modules.

Part of #9356.
2014-12-21 11:49:08 +01:00
Juergen Spitzmueller
276fa4825d Do not silently dismiss unapplied document changes when adding module
Part of #9356
2014-12-21 11:47:59 +01:00
Georg Baum
c86f299a50 Encapsulate Converter class
Now members are not directly accessible anymore.
2014-12-07 18:35:28 +01:00
Juergen Spitzmueller
2614d5a386 Use appropriate (cheaper) conversion. 2014-12-07 13:06:29 +01:00
Jean-Marc Lasgouttes
38f8858671 Fix warnings reported by clang
All these problems have the same root: the address of a reference can never be 0, and it does not make sense to test it.
2014-11-27 19:10:43 +01:00
Jean-Marc Lasgouttes
8d6d21c6d9 Add new variables lyx_build_date/time
These are now in version.cpp. The build machinery should therefore make sure
that version.cpp is recompiled at every compilation.

These variables are now referred to by the other places that made use of __DATE__ and __TIME__.
2014-11-25 18:58:35 +01:00
Georg Baum
5ea48e077b Show export message also for non-threaded export 2014-11-19 22:45:25 +01:00
Uwe Stöhr
e4fb40b284 symbols: support the AMS commands \l(r)v(V)ert
- fixes bug #3538
2014-11-16 23:09:28 +01:00
Scott Kostyshak
73a7bf9dad Recommit clearing of empty selections in GuiView
A similar fix was reverted (453ce611) because of crashes.
The crashes occurred simply because of a failed check that
we have a buffer view before using it. That is now done in
this commit.

The below commit description is copied from the original
commit (fb05011a):

Empty selections can cause confusing behavior for a few reasons:

(1) some functions behave differently depending on whether there is a
selection. If I press delete, nothing happens (where I expect the
character or inset before the cusor to be deleted). If I toggle bold or
emphasize nothing happens (where if there is no selection the entire
word is toggled). There are other LyX functions that depend on whether
there is a selection or not. Further, I wonder if any part of LyX's code
assumes that if there is a selection it is non-empty.

(2) menu options are incorrectly set. For example, the scissors icon.

For remaining empty selection issues, see #9222.

For more information, see:
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg184758.html
2014-11-07 20:47:55 -05:00
Richard Heck
de3daf040b Sort debug options in the message pane by string. This makes it
much easier to find what you need, especially when we're trying
to help users. Previously, they were sorted by their enum values.
2014-10-26 12:49:04 -04:00
Enrico Forestieri
498ab8ff23 Tweak the shape of the parbreak separator.
The shape of the parbreak separator is slightly changed in order to
better distinguish it from the forced newline. This allows using the
same color of the plain version without risk of confusion.
2014-10-25 23:38:52 +02:00
Stephan Witt
16e979298e #9130 Text in main work area isn't rendered with high resolution
Constify splash image coordinates
2014-10-21 13:48:14 +02:00
Stephan Witt
84e6b98562 #9130 Text in main work area isn't rendered with high resolution
Draw version string to splash image with correct position and size
2014-10-20 17:37:12 +02:00
Stephan Witt
345ec48ed3 #9130 Text in main work area isn't rendered with high resolution
Search high resolution images only when application has detected high resolution screen
2014-10-20 17:15:23 +02:00
Stephan Witt
aabc20fde8 Repeat the Mac menu bar init for Qt5 only on Mac 2014-10-20 14:22:45 +02:00
Stephan Witt
a09eaf448c Add Qt-version info to LyX version string when a git repository is present. 2014-10-18 16:06:33 +02:00
Stephan Witt
2dfb45f91b #9130 Text in main work area isn't rendered with high resolution
Assign the pixelRatio of the application to the buffer of the work area.
2014-10-18 15:52:43 +02:00
Stephan Witt
4d51ad339f #9130 Text in main work area isn't rendered with high resolution
Load images with search mode check_hidpi to read images with double size when present.
2014-10-18 15:50:22 +02:00
Stephan Witt
54a742382c #9130 Text in main work area isn't rendered with high resolution
Make QT_VERSION check for Qt5 matching Qt5.0.0 too.
2014-10-18 15:48:18 +02:00
Stephan Witt
8829eeed04 #9130 Text in main work area isn't rendered with high resolution
Assign the pixel_ratio of graphics params to the Qt pixmap of the image.
2014-10-18 15:46:17 +02:00
Stephan Witt
e7163a0999 #9130 Text in main work area isn't rendered with high resolution
Add search mode check_hidpi to ease the lookup for images with double size to use for displays with high resolution.
2014-10-18 15:19:47 +02:00
Stephan Witt
9135dcee07 #9130 Text in main work area isn't rendered with high resolution
Introduce the concept of pixel ratio: the ratio of physical and device independent pixels.
This is useful for rendering of content on Retina-displays of Mac hardware with high resolution.
Qt has real support for this starting with Qt5 - therefore it has to be compiled conditionally.
This change uses some work of Marcelo Galvão Póvoa, thank you.
2014-10-18 11:53:16 +02:00
Stephan Witt
68d217df49 Mac menu bar init has to be repeated for Qt5 after clearing the menu 2014-10-11 12:39:08 +02:00
Jean-Marc Lasgouttes
8ecb96c09a Add the git commit (if applicable) to LyX version
This only works for autotools right now, but adding that to cmake is trivial
2014-10-10 12:12:17 +02:00
Juergen Spitzmueller
db2044dc14 Fix key code 2014-10-08 10:57:58 +02:00
Stephan Witt
ce57594afd Remove Qt4 artifacts in comments 2014-10-01 10:06:17 +02:00
Kornel Benko
6c7b5b12c7 Add cmake files to autoconf's dist 2014-08-31 15:21:20 +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
Enrico Forestieri
4521fc757b Replace Q_WS_WIN with appropriate guards to account for Qt5.
This commit replaces almost all occurrences of Q_WS_WIN to comply
with Qt5. The remaining occurrences should *not* be replaced,
because the guarded code won't compile on Qt5.
2014-08-25 19:27:45 +02:00
Enrico Forestieri
565260126e Fix the -geometry command line argument for Windows.
The command line argument -geometry WIDTHxHEIGHT±XOFF±YOFF
specifies a preferred size and location for the main window.
Currently, this is semi-broken on Windows. Indeed, only
specifying WIDTH and HEIGHT places the main window such that
the left and top borders are invisible such that the window cannot
be moved. Moreover, the XOFF and YOFF parts (when present) are
used to specify the distance of the window from the left and top
or right and bottom edges of the screen, when using '+' or '-',
respectively. However, -geometry 800x600-20-20, instead of placing
the window such that its bottom and right edges are at a distance
of 20 pixels from the corresponding screen edges, places the
window such that its left and top borders are out of the screen.
This is corrected by this commit, which also addresses the fact
that Qt5 does not define Q_WS_WIN anymore.
2014-08-25 18:35:15 +02:00
Stephan Witt
5af8238700 Reintroduce some class definitions. 2014-08-24 21:40:40 +02:00
Stephan Witt
3218d32ace Remove superfluous class definitions. 2014-08-24 20:32:01 +02:00
Stephan Witt
f73091228c Remove special GlobalMenuBar class. As Patrick De Visschere pointed out it is not needed. The shortcut handling of Qt does it internally now what GlobalMenuBar was made for. 2014-08-24 20:29:52 +02:00
Stephan Witt
6cbaad9398 Correct the method signature of MenuTranslator::translate for Qt5 2014-08-23 16:01:03 +02:00
Stephan Witt
d1bfad86e5 Use QProxyStyle instead of QMacStyle. QMacStyle is not available anymore with At5 and QProxyStyle is present since Qt4.6 as an alternative 2014-08-22 11:17:34 +02:00
Richard Heck
c2fdbbe01a Fix bug #9236: After we recreate the DocumentClass, we have to apply
it to the document.
2014-08-07 15:13:31 -04:00
Scott Kostyshak
453ce61191 Revert "Clear empty selections in GuiView after dispatch"
This reverts commit fb05011ad0,
which lead to various menu-related crashes, such as when
going to Help > About.
2014-08-03 19:20:56 -04:00
Scott Kostyshak
4843618655 Disable branches insert menu if read only 2014-07-28 12:59:35 -04:00
Scott Kostyshak
0bf61a48c0 Disable custom insets insert menu if read only
Before, if a document was read only and had no custom insets
defined, the submenu would be enabled.
2014-07-28 12:59:34 -04:00
Scott Kostyshak
d449e7e64e Submenus now expand even if all items are disabled
As stated in the Apple HIG[1] (via JMarc):

  Ensure that a submenu’s title is undimmed even when all its commands
  are unavailable. As with menu titles, it’s important for users to be
  able to view a submenu’s contents, even if none of them are
  available in the current context.

[1]
https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/AppleHIGuidelines/Menus/Menus.html#//apple_ref/doc/uid/TP30000356-TP6
2014-07-28 12:59:34 -04:00
Scott Kostyshak
fb05011ad0 Clear empty selections in GuiView after dispatch
Empty selections can cause confusing behavior for a few reasons:

(1) some functions behave differently depending on whether there is a
selection. If I press delete, nothing happens (where I expect the
character or inset before the cusor to be deleted). If I toggle bold or
emphasize nothing happens (where if there is no selection the entire
word is toggled). There are other LyX functions that depend on whether
there is a selection or not. Further, I wonder if any part of LyX's code
assumes that if there is a selection it is non-empty.

(2) menu options are incorrectly set. For example, the scissors icon.

For remaining empty selection issues, see #9222.

For more information, see:
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg184758.html
2014-07-28 10:37:08 -04:00
Jean-Marc Lasgouttes
f9caebd29f Fix compilation warnings on windows. 2014-07-28 09:46:13 +02:00
Kornel Benko
5acc6b3791 Make it compilable under cmake again after the merge from str-metrics 2014-07-25 22:03:59 +02:00
Jean-Marc
41740ea915 Merge remote-tracking branch 'features/str-metrics'
This branch implements string-wise metrics computation. The goal is to
have both good metrics computation (and font with proper kerning and
ligatures) and better performance than what we have with
force_paint_single_char. Moreover there has been some code
factorization in TextMetrics, where the same row-breaking algorithm
was basically implemented 3 times.

Globally, the new code is a bit shorter than the existing one, and it
is much cleaner.  There is still a lot of potential for code removal,
especially in the RowPainter, which should be rewritten to use the new
Row information.

The bugs fixed and caused by this branch are tracked at ticket #9003:
http://www.lyx.org/trac/ticket/9003

What is done:

* Make TextMetrics methods operate on Row objects: breakRow and
  setRowHeight instead of rowBreakPoint and rowHeight.

* Change breakRow operation to operate at strings level to compute
  metrics The list of elements is stored in the row object in visual
  ordering, not logical. This will eventually allow to get rid of the
  Bidi class.

* rename getColumnNearX to getPosNearX (and change code accordingly).
  It does not make sense to return a position relative to the start of
  row, since nobody needs this.

* Re-implement cursorX and getPosNearX using row elements.

* Get rid of lyxrc.force_paint_single_char. This was a workaround that
  is not necessary anymore.

* Implement proper string metrics computation (with cache). Remove
  useless workarounds which disable kerning and ligatures.

* Draw also RtL text string-wise. This speeds-up drawing.

* Do not cut strings at selection boundary in RowPainter. This avoids
  ligature/kerning breaking in latin text, and bad rendering problems
  in Arabic.

* Remove homebrew Arabic and Hebrew support from Encoding.cpp. We now
  rely on Qt to do handle complex scripts.

* Get rid of LyXRC::rtl_support, which does not have a real use case.

* Fix display of [] and {} delimiters in Arabic scripts.
2014-07-25 20:10:55 +02:00
Jean-Marc
f4fc035cf6 Better algorithm for forcing bidi drawing
The use of RLO/LRO overrides to force text orientation was really hackish and the way it was done caused dropped letters in Mac OS X (for some unknown reasons).

This new approach is much cleaner, except that it relies on features not advertised in documentation
but present at least from Qt 4.5 to Qt 5.3:
* TextFlag enum values TextForceLeftToRight and TextForceRightToLeft, which are strong versions
  of QPainter::setLayoutDirection; they are passed as a parameter of QPainter::drawText.

* QTextLayout::setFlags method, which is required to pass the above flags to QTextLayout.

The unicode override method is still used to draw strings Mac OS X because, for some reason, the direction was not really enforced in this case.
2014-07-25 19:56:51 +02:00
Kornel Benko
63976066ad avoid qt4 variable names in cmake build 2014-07-21 08:49:05 +02:00
Jean-Marc Lasgouttes
bbe6e9f593 Revert optimization where several words are drawn at the same time
This can only be done where splitting of string is identical in row breaking and display. It will be possible to reintroduce this when row painting uses the tokenized row information.
2014-07-20 18:54:31 +02:00
Enrico Forestieri
4bdeae2733 Update autotools for building with Qt5.
The option --enable-qt5 allows configuring for Qt5. The default is Qt4.
Nothing special is done with respect to Qt4, apart from pulling in the
correct libraries. Indeed, other than the core and gui libraries, now
also the concurrent and widgets libraries are needed.
2014-07-19 03:34:28 +02:00
Enrico Forestieri
294d08b1bf Add forward search command for qpdfview.
Also update docs explaining how to activate reverse search in qpdfview.
2014-07-13 20:08:43 +02:00
Jean-Marc Lasgouttes
45eb314a86 Get rid of rtl_support preference
This variable was introduced to guard against any bad consequence of the then-new right-to-left
languages support. Let's be bold and get rid of it altogether!

Now right to left support is always enabled.
2014-07-09 21:11:08 +02:00
Jean-Marc Lasgouttes
ec42b2e4c9 Do not split words at selection boundary
The display of partially-selected word is now done in a new Painter::text method
which displays the string twice with different clip settings. This allows to
catter for the case where Color_selectiontext is not black.

Morover, the code that uses unicode override characters to force the
direction of a string is moved to lstrings.h.

Fixes: #9116
2014-07-08 21:30:06 +02:00
Jean-Marc Lasgouttes
2ff639a0e6 Fix positionning of cursor
The old implementation of Row::Element::pos2x and x2pos did not work
correctly with Arabic text, because characters can have shapes that
depend on context.

This new implementation leverages QTextLayout in a simplified way,
since only one word is added to the layout.

This allows to make Row::Element::x2pos more readable.

Fixes: #9115.
2014-07-08 21:30:05 +02:00
Jean-Marc Lasgouttes
4176795e72 Remove support for LyXRC::force_paint_single_char
This workaround is not necessary anymore, and it complicates the code.

The variable itself will be removed after the landing of the branch on
master.
2014-07-08 21:30:05 +02:00
Jean-Marc Lasgouttes
b0543270a9 Remove debug code from TextMetrics
After this, it is possible to remove one parameter to getPosNearX.
2014-07-08 21:29:52 +02:00
Jean-Marc Lasgouttes
f686375eec Change getColumnNearX to getPosNearX
The semantics was bad: the old implementation would return pos - row.pos(), and then all user of the function had to re-add row.pos().
2014-07-08 21:10:47 +02:00
Jean-Marc
93a43742a5 Fix a bunch of small performance issues spotted by cppcheck
Most of these are about passing const strings parameters as references.
2014-07-05 19:13:10 +02: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
Jean-Marc Lasgouttes
01c9bcb432 Get rid of ugly font metrics workarounds.
Now we have proper ligatures and kerning on screen...
2014-06-25 17:55:16 +02:00
Jean-Marc Lasgouttes
8539f756ed Implement real string width computation
Important features:
* widths are cached in a map
* old behavior is still used when lyxrc.force_paint_single_char is true.
2014-06-25 17:54:15 +02:00
Peter Kümmel
2f17858115 On Linux show in crash message box the backtrace 2014-06-14 11:25:25 +02:00
Georg Baum
f09a9fe2e6 Remove unsafe method FileName::tempName()
FileName::tempName() created a new temp file name by using qt to create a
temporary file with a unique name, and then deleting that file and returning
the name. This was unsafe, since other processes or even other threads of the
running LyX could create files with the same name between deletion and then
using the temp name.
This is fixed by using the TempFile class instead. As a side effect, a few
cases where the temp files were not deleted after usage were fixed as well.
The only place that is still unsafe is createTmpDir().
2014-06-09 13:05:50 +02:00
Georg Baum
c1ac09e11f Fix bug #7954 (now really)
Thanks to maciejr we know now what the remaining problem was with bug 7954:
My unicode symbol fallback works fine, the problem was that a font named
"Symbol" is available on OS X, but it does not use the font-specific encoding
we expect: Almost all glyphs are at their unicode code point.
Therefore the bug is fixed by re-enabling the unicode workaround and blocking
the Symbol font on OS X.
2014-06-07 10:54:17 +02:00
Peter Kümmel
080fca85a8 build with mingw on Windows and Linux 2014-06-07 08:06:13 +02:00
Scott Kostyshak
de091e6ceb Expand module names instead of buttons in settings
Maximizing the document settings window when on the modules pane,
the horizontal space is now given to the module names and so no
scrollbar is needed. Before, even when maximized, a scrollbar was
sometimes needed because the horizontal space was given to the
buttons in the middle, which did not provide an extra benefit.

The default sizeType was "Expanding" and is now changed to "Minimum"
for the horizontal spacer above the middle buttons.
2014-06-07 00:43:07 -04:00
Enrico Forestieri
ba603db942 Fix bug #9153 (Using mathpanel to insert matrix creates extra space on top)
The code was setting the current index before filling the
combo box items.
2014-06-06 16:14:24 +02:00
Juergen Spitzmueller
20bcaec061 Add layout tag that determines if/when a paragraph can be indented.
Fixes: #7327, #7458, #8670
2014-05-29 14:10:32 +02: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
Georg Baum
85db1005b6 Fix another crash similar to #9030
This one occured after the fix for bug #9030 if the cursor is in a math inset
and the edit menu is opened.
2014-05-22 22:02:46 +02:00
Georg Baum
2acd00fc17 Remove unneeded slash
addPath() always adds a slash at the end, os got a double one before.
Qt and the OS are clever enough to understand that, but a single slash
looks more nice.
2014-05-19 22:09:12 +02:00
Juergen Spitzmueller
c5753af50d Fix crash when right-clicking into an inset with more paragraphs than the main text.
Fixes: #9123.
2014-05-18 18:03:06 +02:00
Jean-Marc Lasgouttes
015333d987 Rely on Qt to handle small caps text
This has the advantage of simplifying our code and to produce the
correct output: the small capitals should have the exact same width as
the lower case letters.

The slanted fonts are also translated to oblique on Qt side, but this
does not seems to have an effect in my testing. It may be that proper
oblique fonts need to be installed.
2014-05-07 12:13:27 +02:00
Kornel Benko
fdd5a1bd5f make build: Versioning of lyx.svg (missed in previous commit) 2014-05-06 17:24:00 +02:00
Juergen Spitzmueller
2730f9e2b5 Fix View Source size
Fixes: #9084.
2014-05-01 18:00:37 +02:00
Vincent van Ravesteijn
2552c737be GuiLog: Use GuiClipboard to put the log on the clipboard
All direct interaction with the Qt clipboard is now done in either GuiClipboard or GuiSelection.
2014-04-29 15:38:35 +02:00
Vincent van Ravesteijn
847d1fb2f5 Use the cached value GuiSelection::selection_supported_
That's where it is for.
2014-04-29 15:17:15 +02:00
Jean-Marc Lasgouttes
5c32dc85d5 Fix various warnings issued by clang++.
* remove unused class TexStream.

* remove unused virtual method Inset::cellXOffset

* remove second argument of FileDialog constructor, which was actually
  not used

* remove some dead local code

* remove some unused private members of classes

* in InsetMathNest::updateBuffer, fix the logic of a test
2014-04-22 00:04:04 +02:00
Richard Heck
065db68067 Fix a bunch of minor issues discovered by the cppcheck script. 2014-04-21 11:52:00 -04:00
Uwe Stöhr
658aa3f026 PrefLanguageUi.ui: change a string
to have uniform uppercases in this dialog
2014-04-21 11:51:59 -04:00
Uwe Stöhr
9776519cc5 PrefCompletionUi.ui: port commit 1a137950 2014-04-21 11:51:58 -04:00
Juergen Spitzmueller
df1dbe28ce Do not allow the manual insertion of a directory (without filename) into the import dialog and thus prevent an assertion.
Fixes: #7437
2014-04-21 11:51:58 -04:00
Juergen Spitzmueller
da196ed5b2 Fix corrupted PrefCompletionUI.ui 2014-04-21 11:51:58 -04:00
Richard Heck
f00104d222 Revert "Tooltip for completion word length."
This reverts commit 2aadcec1fc9ae784e6029b56790753ce82b9f055.

Conflicts:
	src/frontends/qt4/ui/PrefCompletionUi.ui
2014-04-21 11:51:58 -04:00
Juergen Spitzmueller
a70571258d Fix assertion when ChkTeX hit math.
The problem here was that we used texted-only methods (via paragraph()), which triggered the assertion as soon as we were inside math.

Fixes: #8798
2014-04-21 11:51:57 -04:00
Scott Kostyshak
abc4c663ca Focus on buffer after section select in Outliner 2014-04-21 11:51:57 -04:00
Richard Heck
d53cf7f575 Typo. 2014-04-21 11:51:57 -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
Richard Heck
3d6790607e Tooltip for completion word length. 2014-04-21 11:51:57 -04:00
Benjamin Piwowarski
54a534c81f Really use qstr to convert a string in a QString 2014-04-21 11:51:57 -04:00
Benjamin Piwowarski
91980ebfc5 Use qstr to convert string to a QString 2014-04-21 11:51:56 -04:00
Juergen Spitzmueller
8913031faf Fix section-select when issued from outliner
Fixes: #8936
2014-04-21 11:51:56 -04:00
Benjamin Piwowarski
382b42d6c2 OS X: Title bar can be clicked to access file path 2014-04-21 11:51:28 -04:00
Benjamin Piwowarski
2da0d32771 CMake: specific modules for Qt5 2014-04-21 11:51:04 -04:00
Richard Heck
130c375174 Remove obsolete formats from file dialog
It is confusing for the users to see the formats 1.3--1.6 in the file-open
dialog and not the 2.0 format. The exotic extensions were only used when
e.g., LyX 1.6.x exported to LyX 1.5.x format.
2014-04-01 21:53:50 +02:00
Richard Heck
717d19d3c3 Fix for bug #8939: Don't just close if the user enters a shortcut
that is already assigned.

From new contributor Roy Xia.
2014-03-15 23:05:48 -04:00
Vincent van Ravesteijn
3dec25e5a7 Revert "Return an error if file-open is called with a non-absolute path"
Reverted because of
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg181795.html.

This reverts commit 9c4461deea.
2014-03-10 20:05:28 +01:00
Vincent van Ravesteijn
2db3f50186 Revert "Return an error on file-open only when a filename is given"
Reverted because of
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg181795.html.

This reverts commit a4d881c58e.
2014-03-10 20:05:18 +01:00
Juergen Spitzmueller
656586d9fc Unblock some more internal qt events while doing advanced f&r. This fixes #9009 and some remaining drawing problems for me. 2014-03-10 09:07:36 +01:00
Tommaso Cucinotta
eef602cc9e Prevent LyX from freezing in additional common cases where it would
try to show dialogs or ask for user input while doing advanced find
and replace. In many of these cases we should simply find a way for
avoiding lyx to show a dialog, however an extra info/warning dialog
is better than the GUI freezing and having to kill the process.
2014-03-09 15:43:58 +00:00
Richard Heck
80b058cb18 Fix some shortcut conflicts (bug 9008). 2014-03-08 17:25:57 -05:00
Stephan Witt
d39eae0a88 #6902: Enable About and similar menu items without view and create a new view if needed 2014-03-08 12:51:02 +01:00
Stephan Witt
0e7eaef349 * fix bug 8925: create a temporary action to avoid a menu with any action. Otherwise it will not shown on Mac OS X 10.9 with Cocoa 2014-03-08 12:49:40 +01:00
Georg Baum
be0cd47559 Work around broken math symbol display (bug 7954)
This extends the already existing math symbol fallback mechanism in two ways:
1) When considering the availability of the math font, also take broken
   code points into account. These are currently 0x0009 and 0x00ad, depending
   on the platform.
2) If the fallback symbol in the standard "Symbol" font is not given, or if
   the "Symbol" font is not available, or the fallback symbol is one of the
   broken ones, try to use a generic unicode symbol as second fallback instead.
   If this is available, we rely on Qt to find a font which has it. Only if
   this is not available, display the symbol as ERT.
This ensures that we do never get a symbol which is not displayed: Either
it can be displayed, with or without fallback, or it will be shown as ERT.
2014-03-08 11:13:39 +01:00
Juergen Spitzmueller
0c447db0ca Adjust FIXME 2014-03-05 12:16:57 +01:00
Jean-Marc Lasgouttes
ad56bded03 Bug #9005: various things that do not work as intended in passthru paragraphs
* disable branch-add-insert in pass thru paragraphs

* when it is not possible to input a quote inset, insert a single
  ascii quote when argument to quote-insert is "single"

* handle "mathspace" dialog in Text::getStatus

* disable insertion of newline inset in pass thru paragraphs

* handle "mathdelimiter" and "mathmatrix" dialogs in GuiView::getStatus.
2014-03-04 11:56:03 +01:00
Jean-Marc Lasgouttes
8f8e8ed43c Fix bug #8998: changed document setting is recoded twice as undo
The general trick to avoid this kind of problems is to use undo groups.
2014-03-03 18:28:23 +01:00
Juergen Spitzmueller
5c4acd6bc0 Add FIXME 2014-03-03 10:45:40 +01:00
Prannoy Pilligundla
214f7ed262 Allow statusbar to be set on or off in full screen mode as a
preference.
2014-02-25 20:48:56 -05:00
Richard Heck
e5ea535952 If the selection is some sort of URL, then make it the target, not
the name, in the hyperlink. Fixes bug #8792.

This also fixes a bug discovered while working on this code: The
params passed to GuiHyperlink were never used.
2014-02-23 11:36:54 -05:00
Juergen Spitzmueller
5c1731b060 Fix #8657 on Linux.
On windows, there is apparently some more work to do.
2014-02-23 13:33:04 +01:00
Pavel Sanda
02bde93d2a Allow statusbar toggling in fullscreen (part of #8816). 2014-02-22 00:21:17 -08:00
Richard Heck
7220f1459e Fix bug #8540 by not resetting the GUI if the request came from
the minibuffer. As the comments explain, this leaves a different
bug, but (a) it isn't a crash and (b) it probably won't affect
many users, if *any* users.
2014-02-18 10:42:52 -05:00
Richard Heck
0a5b33bcad Rename a routine. 2014-02-18 10:42:52 -05:00
Jean-Marc Lasgouttes
e7a1cce551 Rename some LFUN names to match their text name
Also, rename copy-label-as-reference to label-copy-as-reference and update LFUNs.lyx accordingly.
2014-02-13 13:50:33 +01:00
Juergen Spitzmueller
fa6b388cb3 Do not issue module warnings when just cloning a buffer (#8864) 2014-02-09 11:16:20 +01:00
Juergen Spitzmueller
6837345209 Fix crash 2014-02-06 13:07:00 +01:00
Juergen Spitzmueller
b13f5dee53 Fix assertion in editing math (bug #8946) 2014-02-06 11:09:02 +01:00
Juergen Spitzmueller
5a669fa62b Style 2014-02-04 10:37:29 +01:00
Juergen Spitzmueller
ef5d702325 Harmonize naming 2014-01-27 12:04:58 +01:00
Juergen Spitzmueller
e6c5f9a17c Whitespace 2014-01-27 11:14:24 +01:00
Juergen Spitzmueller
5a3f1a731f Extend environment-split to an 'outer' split function
This fixes a major beamer UI flaw reported by several users.
2014-01-27 08:01:24 +01:00
Scott Kostyshak
27131e655a Shortcut box now stays open if bad input (#8703)
This allows the user to correct the bad input without
having to enter the other fields again in a new dialog.

Patch from Martin Hoffmann.
2014-01-14 08:04:05 -05:00
Stephan Witt
358e9ab31b fix Symbols dialog box grid size in case of broken QFontMetrics::maxWidth() 2014-01-04 20:14:06 +01:00
Enrico Forestieri
581400937d Fix file dialogs with Qt 5.2.0 and later.
See https://bugreports.qt-project.org/browse/QTBUG-34132

   * [QTBUG-34132] QFileDialog does no longer instantiate widgets if a
     native dialog will be used instead.  Therefore some accessors
     which previously returned unused objects will now return null.
     As before, you can set the DontUseNativeDialog option to ensure
     that widgets will be created and used instead.

Seemingly, Qt uses native dialogs by default starting from version 5.2.0.
When trying to open a file dialog, LyX segfaults in release mode, whereas
Qt asserts in debug mode:
ASSERT failure in QList<T>::at: "index out of range",
file /usr/local/qt/5.2.0/include/QtCore/qlist.h, line 472

This is avoided by explicitly setting the DontUseNativeDialog option
in the code path selected by *not* setting USE_NATIVE_FILEDIALOG.
This option was introduced in Qt 4.5, which is the minimum required
for compiling LyX. So, it is not protected by a preprocessor macro.
2013-12-24 17:21:56 +01:00
Juergen Spitzmueller
49d3557d0c Correct \file statement 2013-12-21 12:58:23 +01:00
Vincent van Ravesteijn
a4d881c58e Return an error on file-open only when a filename is given
Fixes: 9c4461de
2013-12-03 06:37:27 +01:00
Vincent van Ravesteijn
9c4461deea Return an error if file-open is called with a non-absolute path 2013-12-02 21:04:46 +01:00
Juergen Spitzmueller
44df37ab2a Check if string holds absolute file name before passing to FileName
See http://comments.gmane.org/gmane.editors.lyx.cvs/38213http://comments.gmane.org/gmane.editors.lyx.cvs/38213
2013-12-02 09:50:21 +01:00
Juergen Spitzmueller
766e8b1e33 Also when not using tabs, do not open a file twice if already opened (part of #8787) 2013-11-26 16:12:52 +01:00
Pavel Sanda
105f9bb5d9 Get rid of one useless translation.
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg181106.html
2013-11-17 10:41:18 -08:00
Juergen Spitzmueller
c89ae3b517 Add missing widget update 2013-11-15 19:29:15 +01:00
Juergen Spitzmueller
e014f3fabf Some fixes to the SaveAs dialog
LFUN_BUFFER_SAVE_AS has an optional argument where an initial format can be preset

This fixes:

* The remainder of bug #3402: Open Export As dialog when attempting to export to read-only directories
* Bug #8886: 'export as' should default to the default document output format
2013-11-15 09:20:07 +01:00
Juergen Spitzmueller
ed268ac9f7 Clarify description 2013-11-15 08:57:11 +01:00
Juergen Spitzmueller
ab96df492a List all exportable document formats in the Save As dialog, not only the selection from the export menu 2013-11-15 08:56:13 +01:00
Scott Kostyshak
1e365fe315 Focus on custom line edit when custom is selected
Do so for the horizontal and vertical space dialogs.
2013-11-15 01:03:14 -05:00
Juergen Spitzmueller
68a4a53b36 Do not try to validate custom value in VSpace dialog if it is disabled 2013-11-14 10:42:24 +01:00
Juergen Spitzmueller
70b0298fe2 Fix shortcut clash (bug #8878)
Patch by charley
2013-11-12 16:27:32 +01:00
Juergen Spitzmueller
7e22abec5d Fix bug 8880: do not try to validate custom value if it is disabled 2013-11-12 15:48:34 +01:00
Juergen Spitzmueller
ce8ec78783 Fix crash when using context menu in empty outliner
Fixes: #8885
2013-11-10 15:31:27 +01:00
Tommaso Cucinotta
275f269cb7 Advanced F&R dialog does not need to be restored at start-up. 2013-10-26 18:37:25 +01:00
Vincent van Ravesteijn
514aef937a Revert "Fix make distcheck for monolithic build"
This was committed by accident.

This reverts commit 9734ab7e34.
2013-10-12 02:41:36 +02:00
Vincent van Ravesteijn
9734ab7e34 Fix make distcheck for monolithic build 2013-10-12 02:38:15 +02:00
Tommaso Cucinotta
acbba50a65 Added tooltip to new math-only checkbox in advanced options of advanced find & replace. 2013-10-13 11:36:38 +01: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
Jean-Marc Lasgouttes
b89ef8a5b3 Revert "Do not kill the undo stack when doing a Save As..."
This commit was causing bug #8821.

This reverts commit 467422f9df.
2013-10-04 15:01:42 +02:00
Juergen Spitzmueller
5686ad11f3 Fix loop when trying to export a read-only document 2013-09-16 10:13:16 +02:00
Juergen Spitzmueller
b7c1bbfb0b Export as: Further cleanup 2013-09-14 17:53:57 +02:00
Juergen Spitzmueller
2535f2f271 Further localization fixes 2013-09-14 15:40:57 +02:00
Juergen Spitzmueller
e100536d59 Fix 'Export As...' in non-English localizations
It is always a bad idea to compare a localized string. I think the whole method Formats::getFormatFromPrettyName (which is now unused) should be ditched. This is bound to fail.
2013-09-14 13:11:47 +02:00
Juergen Spitzmueller
53445f7b99 Localize 'Export As...' dialog 2013-09-14 12:36:58 +02:00
Juergen Spitzmueller
151158f191 Fix string (patch by Jean-Pierre Chretien) 2013-09-14 11:39:33 +02:00
Jean-Marc Lasgouttes
78780e7b38 Allow master view/update when current buffer is the master 2013-09-01 20:14:44 +02:00
Tommaso Cucinotta
cd84a3024d Now an attempt to export into a folder without write permission causes LyX to automatically pop-up the "Export As" dialog (addressing #3402). 2013-08-26 11:28:07 +01:00
Juergen Spitzmueller
138bb4d14f Fix the fix to the decimal separator problem with Qt5 2013-07-27 11:18:16 +02:00
Enrico Forestieri
92863de517 Fix Qt5 decimal separator bug
Always use '.' as the decimal separator in the GUI, because we
call setlocale(LC_NUMERIC, "C") in setLocale() (GuiApplication.cpp).
2013-07-26 20:52:44 +02:00
Tommaso Cucinotta
b32ce2cf08 When agreeing to wrap-around, but nothing is found, keep the cursor where it originally was.
Now this is coherent with Advanced F&R.
2013-07-22 23:55:43 +01:00
Juergen Spitzmueller
2f2841a016 Establish missing connections to change_adaptor 2013-07-21 19:27:57 +02:00
Tommaso Cucinotta
2a86379ea7 Adding wrap-around pop-up question to simple find and replace dialog (fixing enhancement request #1262). 2013-07-21 17:51:53 +01:00
Juergen Spitzmueller
6445cd9df4 Bug in 'Use non-tex fonts' checkbox auto-toggling (#8717) 2013-07-20 16:15:47 +02:00
Juergen Spitzmueller
d788d497aa Trivial fix: escape ampersands in file names before pushing to tab header (#8757) 2013-07-19 15:55:56 +02:00
Juergen Spitzmueller
6f9a272ca3 Fix toggling of 'misc' font options (bug #8764) 2013-07-17 08:30:42 +02:00
Jean-Marc Lasgouttes
deb6e16e79 Move a Qt workaround to the Qt frontend. 2013-06-04 12:08:36 +02:00
Vincent van Ravesteijn
9a6c402a82 Make sure numeric conversions are not locale dependent
In [19024f72\lyxgit] this line was removed. Later this caused that floats were converted to strings using ','s instead of '.'s. Readding this line fixes this.
2013-06-03 17:58:06 +02:00
Vincent van Ravesteijn
83399dcb7a PrefsUi: Remove unneeded widths 2013-06-02 23:30:06 +02:00
Juergen Spitzmueller
8f287f5ffa Implement option to set a global default output format for dics with non-tex fonts (#8706) 2013-06-01 16:58:34 +02:00
Juergen Spitzmueller
1e42af6c44 Windows compilation fix 2013-05-31 14:27:39 +02:00
Juergen Spitzmueller
a2b34f66ea revert unintended commit 2013-05-31 11:07:48 +02:00
Juergen Spitzmueller
2c1679e958 Small UI polishment 2013-05-31 10:45:21 +02:00
Jean-Marc Lasgouttes
19024f7255 Implement native reading of mo files.
Get the default language by a mix of QLocale and LyXRC::gui_language

Known limitations:
   * encoding is supposed to be UTF-8 (the charset parameter is checked);
   * context is not handled (implemented differently in LyX);
   * plural forms not implemented (not used for now in LyX);.
   * tThe byte endianness of the machine on which the .mo file have been
     built is expected to be the same as the one of the machine where this
     code is run.
2013-05-30 22:10:01 +02:00
Juergen Spitzmueller
bfaa84d97f Attempt to fix #8702 2013-05-28 11:45:42 +02:00
Juergen Spitzmueller
9992348223 Add FIXME 2013-05-27 18:48:46 +02:00
Juergen Spitzmueller
83a6107392 Recognize biber warnings/errors/info messages 2013-05-26 16:06:13 +02:00
Stephan Witt
75c631df7f On Mac, moving down a paragraph should place the cursor at the end of the current paragraph
(unless it's already there, in which case it should move to the end of the next paragraph).
Change the preference setting name (mac_like_word_movement to mac_like_cursor_movement)
to better reflect its function.

Patch and description from Bennett Helm
2013-05-25 18:02:21 +02:00
Uwe Stöhr
427aeff90f GuiBox.cpp, InsetBox.cpp: fix some wrong logic
- InsetBox.cpp:
 a framebox without inner box and without a width is \fbox
 a framebox with inner box is also \fbox
 a framebox without inner box and with width is \framebox

- GuiBox.cpp: the width checkbox must be checked if there is width
2013-05-25 15:07:17 +02:00
Uwe Stöhr
472732f92d GuiBox.cpp: addendum to [f04c7711/lyxgit]
- this was forgotten to commit;
(without this we would get invalid LaTeX code when changing in the box dialog a makebox without a width to a minipage and press apply - a makebox required to specify a width, at least an invisible one like "0cm")
2013-05-25 13:52:09 +02:00
Jean-Marc Lasgouttes
f04c7711b0 Fix empty width support for Box inset
* InsetBox and GuiBox: Use proper empty length instead of the broken -9.99col% trick
* some slight changes to the logic of GuiBox to make sure that values are set as needed.
* lengthToWidget(): handle properly the empty length case. All the other related Qt helpers did it already, it was probably an oversight. Also set the default_unit parameter as optional (not needed in this patch actually, but I got carried away :)
* allow generating LaTeX code for an empty length, since some broken code does that.
2013-05-24 15:44:59 +02:00
Pavel Sanda
84c5e67e07 Header cleanup cont. 2013-05-23 22:12:29 -07:00
Pavel Sanda
de9d8cc0ba Header cleanup cont. 2013-05-22 19:58:58 -07:00
Pavel Sanda
707b099102 Header cleanup cont. 2013-05-20 18:47:16 -07:00
Pavel Sanda
4c0ef38200 Header cleanup cont. 2013-05-19 18:07:53 -07:00
Vincent van Ravesteijn
c8d685c665 Fix zombie toolbars (bug 8520)
If there is a new toolbar, it will not be restored by Qt and we need to
initialize it ourselves. However, it is not so easy to find out which
toolbars are restored by Qt and which are not. For this, the setVisible
function of GuiToolbar is 'misused'. If the visibility is set, the toolbar
must have been restored by Qt and we should leave it alone.
2013-05-19 22:17:16 +02:00
Vincent van Ravesteijn
327f7ed90d Seed Qt's random generator
LyX uses QTemporaryFile to create a unique temporary directory. This
temporary directory will consist of two random characters and the process
identifier (PID).

Currently, the two random characters are often the same because Qt's
random generator was not seeded. If there are a lot of lyx temporary
directories accumulated, the chance of failing to find a unique temporary
directory is (N/100)%.

The temporary directories can be left behind if either LyX crashes, or
when a file in the temporary directory is opened in another viewer when
LyX closes. This can be a pdf that is viewed in a reader that disallows
the file to be removed while viewing it.
2013-05-19 13:59:45 +02:00
Julien Rioux
cde541d785 New \cite_engine_type default.
The default citation capability of LaTeX is not a true numerical
citation engine, rather it uses a mixture of labels/numbers. Thus
we now distinguish them: "numerical" always increments the bibitem
counter and uses its value as a numerical citation label, while
"default" only uses the bibitem counter when no label is provided.

LyX file format incremented to 471.
2013-05-16 20:39:23 +02:00
Vincent van Ravesteijn
483e0f61e7 GuiAbout: Add missing include 2013-05-15 07:47:02 +02:00
Georg Baum
7bdc34a987 Implement forced local layouts
These should be used if any new style needs to be introduced in the stable
2.1 series: If the ForceLocal flag of the style is set, it will always be
written to the document header, so that even older 2.1 versions can read
and correctly output the document.
2013-05-15 07:19:49 +02:00
Vincent van Ravesteijn
db32d1b155 Only show the configuration of theme icons on X11
Also hide the ui items in the constructor to prevent flickering.
2013-05-14 18:04:17 +02:00
Vincent van Ravesteijn
147dcb4cb9 Make the use of system's theme icons configurable
A lyxrc variable is added and a checkbox is added to the LyX->preferences
dialog.
2013-05-14 17:26:06 +02:00
Vincent van Ravesteijn
b1f6ab69f2 Use system's theme icons
On X11 Qt offers the possibility to use the system's icons. To this end,
we must link the "lyx command" to a standard action icon as specified in:

http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html
2013-05-14 17:26:06 +02:00
Vincent van Ravesteijn
62d6dcde6e qt5: Only include a single header to fix compilation 2013-05-14 14:19:38 +02:00
Uwe Stöhr
ef94c42383 GuiMathMatrix.cpp: remove an unused header
- sorry, I accidentally added it in the last commit
2013-05-14 02:26:22 +02:00
Uwe Stöhr
4b7fd9fea2 GuiMathMatrix.cpp: fix bug #7049
- we should not fill the dialog comboBoxes in the .ui-files
2013-05-14 02:19:43 +02:00
Vincent van Ravesteijn
813c00a21f Use [[Context]] for the msgid of some strings 2013-05-13 22:22:04 +02:00
Vincent van Ravesteijn
cba5060e74 Translate build version strings 2013-05-13 12:57:21 +02:00
Vincent van Ravesteijn
ed5585966b Remove the 'running' booleans quit and optional
Reason for this 'cleanup' is the strange "optional = false" lines at the
end of the "case md_item" and "case md_subitem". Then, it is nicer to
directly use the value of the switch to be the running variable and to use
this to determine whether an item is optional and whether we should quit.
2013-05-13 11:37:26 +02:00
Vincent van Ravesteijn
a033b88a37 Fix assert: Do not use translated names as keys
The panels in GuiDocument and GuiPrefs are stored in a map. The keys are
the translated descriptions of these panels. Whenever someone changes the
gui language and reopens the Document Settings pane, LyX asserted because
it could not find the "Child Documents" pane.
2013-05-13 10:00:57 +02:00
Vincent van Ravesteijn
3e65edd729 Add a function to translate QStrings 2013-05-13 10:00:49 +02:00
Vincent van Ravesteijn
03f98402f4 Fix crash with FindAndReplaceUi
In commit bd9e8fecd the currentIndex of the FindAndReplaceAdv Pane was
changed from 0 to 1. Since then LyX crashed when requesting the pane or
when changing LyX preferences.

This patch reverts this, although it is not clear why it would crash
otherwise. It is still committed like this, because LyX is unusable
without.
2013-05-12 16:14:27 +02:00
Lars Gullik Bjønnes
704328d348 Remove ; from end of function definitions 2013-05-12 13:04:18 +02:00
Uwe Stöhr
6cfa7feb6d PageLayoutUi.ui: use a more sensible option name 2013-05-10 18:34:05 +02:00
Uwe Stöhr
1112a17372 GuiMathMatrix.cpp: fix a compiler warning 2013-05-10 13:13:20 +02:00
Jean-Marc Lasgouttes
151960440e Another try at making the source view dock arrange itself.
The idea is to minimize the size of the form that contains the buttons.

Since I do not really know what I am doing, I will revert if problems occur.
2013-05-07 11:30:46 +02:00
Uwe Stöhr
72b2c54fae GuiBox.cpp: fix a dialog initialization issue
thanks Jean-Marc for the hint
2013-05-06 01:31:04 +02: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
Pavel Sanda
49c2450f3f Add layout intelligence to View Source pane (bug #8653).
View Source pane layout now automatically switches between horizontal
and vertical design when docked in vertical or horizontal way.

Original idea and patch from Edwin.

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

Note: the long standing-fight with too bulky minimal QTextEdit size
is now solved via ViewSourceUi.sizePolicy=Ignored.
2013-05-04 23:05:51 -07:00
Pavel Sanda
dae6ca73df ViewSourceUi.ui layout was broken 2013-05-04 01:09:07 -07:00
Jean-Marc Lasgouttes
ea6240b785 Even more llvm/clang warnings
Remove lyxview_ member of lyx::Action, fix a prototype in TexStream and comment out a Cursor function.
2013-05-02 19:22:10 +02:00
Jean-Marc Lasgouttes
623d2f9530 More llvm/clang warnings
This is mostly unused private class members.

There are also a few unused functions that got #if'ed out. I never know in this case whether the code should be nuked.
2013-05-02 18:27:32 +02:00
Jean-Marc Lasgouttes
bd2e7480b1 A first batch of potential bugs spotted by llvm/clang
There are more warnings left, but these are the easiest to fix. And some of them are real bugs (assignments with == instead of =).
2013-05-02 16:38:25 +02:00
Pavel Sanda
154319d063 Remove some header leftovers based on Scott's script hints.
False positive rate of hints is quite high. Although the includes can be
technically removed (due to other includes) they logically belong to the
header.
2013-05-02 00:30:16 -07:00
Richard Heck
76c96c22ac Another assertion that got changed wrongly.
I've read back through that patch, and everything else looks good.
2013-04-27 18:12:27 -04:00
Richard Heck
d79225ae98 Remove all messages to user related to assertions. We'll just use
a basic message which is defined in lassert.cpp now.
2013-04-27 17:52:55 -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
Vincent van Ravesteijn
262f58ddc3 Fix the size of the hAlign combobox in GuiTabular
The default sizeAdjustPolicy is AdjustToContentsOnFirstShow. As the
combobox is initially filled with all items, it will not change size if we
later remove the 'At Decimal Separator' item.
2013-04-25 22:35:56 +02:00
Vincent van Ravesteijn
6f8a74791b Adjust CMake for Qt5 2013-04-23 21:45:49 +02:00
Scott Kostyshak
b75ecdfaf0 GuiRef: only enable "Group" CB if non-empty refs 2013-04-22 15:39:16 -04:00
Scott Kostyshak
21d1f97cad GuiRef: do not insert a category as a ref
Before, if a user had "Group" checked in GuiRef and double-clicked
on a category, that category would be inserted as a (broken)
reference. Now, when a category is double-clicked, nothing happens.
2013-04-22 15:39:16 -04:00
Scott Kostyshak
647ae51a46 GuiRef: do not hide labels that start with ':'
If a label starts with ':' and 'Group' is checked,
the label is now shown under "<No prefix>" instead of
not shown.

Note that labels starting with ':' can be valid in LaTeX.
2013-04-22 15:39:16 -04:00
Scott Kostyshak
9887dd48ca GuiRef: only show "<No prefix>" if non-empty
If "Group" is checked, "<No prefix>" is shown only if there exists a
label with no prefix. Before, it was shown even when it was empty and
even when there were no labels at all.
2013-04-22 15:39:16 -04:00
Uwe Stöhr
0050245151 PrefInputUi.ui: change 2 strings
because all over the docs we refer to the keyboard maps as primary and secondary
2013-04-21 20:20:08 +02:00
Juergen Spitzmueller
be0610362d Revert "Fix the zombie toolbar problem (bug #8520)"
This reverts commit d00ec4dece.
2013-04-20 11:42:21 +02:00
Juergen Spitzmueller
f3bb757f97 Revert "avoid redundant toolbar initialization"
This reverts commit 0f26aabeee.

It turned out this breaks session.
2013-04-20 11:40:40 +02:00
Georg Baum
60448bf681 Whitespace 2013-04-19 21:34:05 +02:00
Georg Baum
c14b9e67bc Implement paste from LaTeX and HTML (bug #3096)
As discussed on the list. No automatic contents detection is done, the user
needs to use the special paste menu instead. I used the new TempFile class
for safe temporary file handling.
The documentation would go into section 2.2 of UserGuide.lyx, but I am not
allowed to edit that document.
2013-04-14 19:45:36 +02:00
Georg Baum
0613a218aa Also put HTML on the clipboard when copying
The HTML export is now mature enough so that it can be used to transfer
formatted text to the clipboard. This enhances interoperability e.g. with
office applications.
2013-04-12 22:12:47 +02:00
Vincent van Ravesteijn
ea7d36912b Use setSectionResizeMode from qt_helpers
This is needed to compile with Qt5.
2013-03-30 12:41:08 +01:00
Richard Heck
5fbbd863db Remove "List of" from outliner dropdown. 2013-03-28 08:33:21 -04:00
Richard Heck
410c716bf7 Add Nomenclature to the TOC. 2013-03-27 20:03:32 -04:00
Vincent van Ravesteijn
cb93f034d4 Add an LFUN for continuous spell checking
This fixes the first part of #8589.
2013-03-24 20:28:37 +01:00