Re: [PATCH] Auto feature for minibuffer toolbar

2015-06-22 Thread Kornel Benko
Am Montag, 22. Juni 2015 um 16:10:35, schrieb Jean-Marc Lasgouttes 
lasgout...@lyx.org
 Le 19/06/2015 16:31, Kornel Benko a écrit :
   From memory:
  1.) start lyx, the minibuffer is already displayed.
  2.) open any file
  3.) M-x, the cursor is displayed in the minibuffer
  4.) M-x, in the minibuffer appears 'x'
  5.) click on a view, cursor is displayed in both, minibuffer and buffer
  6.) enter 'abcd', it goes to minibuffer and not to buffer
 
 Try this one. It fixes this problem and:
 - do not close the minibuffer if the action gave an error; currently it 
 relies on DispatchResult::error()
 - simplifies the code: get rid of the spacial off parameter to 
 command-execute.
 - get rid of the hard-coded M-x to close the minibuffer.
 
 I understand that the behavior of the patch is still not optimal. 
 Comments are welcome.
 
 JMarc
 

This one definitely is better.

Next glitch, sorry:

Calling e.g. 'M-x dialog-show spellcheckerreturn'
not only opens the dialog, but executes it, so that there is a dialog message
'We are at end of document, do you want to proceed from the start'
Clocking on 'yes' or 'no' closes the minibuffer _and_ also the spellchecker 
window.

This behaviour is not OK, since our key-tests cannot work anymore.

Kornel

signature.asc
Description: This is a digitally signed message part.


Re: [PATCH] Auto feature for minibuffer toolbar

2015-06-22 Thread Kornel Benko
Am Montag, 22. Juni 2015 um 16:53:06, schrieb Kornel Benko kor...@lyx.org
 Am Montag, 22. Juni 2015 um 16:10:35, schrieb Jean-Marc Lasgouttes 
 lasgout...@lyx.org
  Le 19/06/2015 16:31, Kornel Benko a écrit :
From memory:
   1.) start lyx, the minibuffer is already displayed.
   2.) open any file
   3.) M-x, the cursor is displayed in the minibuffer
   4.) M-x, in the minibuffer appears 'x'
   5.) click on a view, cursor is displayed in both, minibuffer and buffer
   6.) enter 'abcd', it goes to minibuffer and not to buffer
  
  Try this one. It fixes this problem and:
  - do not close the minibuffer if the action gave an error; currently it 
  relies on DispatchResult::error()
  - simplifies the code: get rid of the spacial off parameter to 
  command-execute.
  - get rid of the hard-coded M-x to close the minibuffer.
  
  I understand that the behavior of the patch is still not optimal. 
  Comments are welcome.
  
  JMarc
  
 
 This one definitely is better.
 
 Next glitch, sorry:
 
 Calling e.g. 'M-x dialog-show spellcheckerreturn'
 not only opens the dialog, but executes it, so that there is a dialog message
   'We are at end of document, do you want to proceed from the start'
 Clocking on 'yes' or 'no' closes the minibuffer _and_ also the spellchecker 
 window.
 
 This behaviour is not OK, since our key-tests cannot work anymore.
 

Wrong example. The file had no problems with spellchecking, the behaviour with 
the dialog is the same as before.
The only difference is the now closed minibuffer.

Using e.g. 'dialog-show findreplaceadv', it behaves like expected.

Kornel


signature.asc
Description: This is a digitally signed message part.


Re: test of math previews

2015-06-22 Thread Enrico Forestieri
On Mon, Jun 22, 2015 at 11:32:17PM +0100, Guillaume M-M wrote:
 
 1) SIGSEGV with previews (no math macros involved). I believe this is the
 one I mentioned in a previous message. See the attached
 lyx-preview-sigsegv.lyx for instructions.

Thanks for catching this. I fixed this issue at cd046f0e. The other two
issues are not critical and I'll have a look later.

-- 
Enrico


Re: test of math previews

2015-06-22 Thread Guillaume M-M
Three bugs in the current stable (93c0512b). The third one has an easy 
fix (and also a very trivial partial fix if you want to move forward 
with the release). The first two could be postponed after the release, 
or maybe they are trivial as well to Enrico. Found the first two while 
testing my solution to the third one.


1) SIGSEGV with previews (no math macros involved). I believe this is 
the one I mentioned in a previous message. See the attached 
lyx-preview-sigsegv.lyx for instructions.



2) Closing a file whose previews are being generated results in an error 
dialog Could not remove the temporary directory 
/tmp/lyx_tmpdir.LXSnBrW17125 and the following output on the terminal:


Warning: Could not remove temporary directory

Could not remove the temporary directory 
/tmp/lyx_tmpdir.LXSnBrW17125/lyx_tmpbuf0
Warning: Warning in extract_resolution! Unable to open 
lyxpreviewQ17125_legacy.log

Warning: type 'exceptions.IOError',IOError(2, 'No such file or directory')
Warning: check_latex_log: Unable to open lyxpreviewQ17125_legacy.log
Warning: type 'exceptions.IOError',IOError(2, 'No such file or directory')
Warning: Warning in legacy_extract_metrics_info! Unable to open 
lyxpreviewQ17125_legacy.log

Warning: type 'exceptions.IOError',IOError(2, 'No such file or directory')
Error: Failed to extract metrics info from lyxpreviewQ17125_legacy.log

So there's some additional cleanup to do now when closing a file.


3) Previews have the incorrect size with layouts that offer font sizes 
other than 1[0-2]pt (lyx-preview-fontsize.lyx). The legacy method offers 
a function that retrieves the actual font size and calculates the actual 
dpi. Attached is a patch (extract_resolution.diff) that imports this 
function in the new script.


(It's possible to just replace:
documentclass_re = re.compile((documentclass\[)(1[012]pt,?)(.+))
with:
documentclass_re = re.compile((documentclass\[)([0-9]+pt,?)(.+))
but this does not take into account custom classes, options, preambles, 
etc. If this path is retained, here's the result of $grep FontSize 
*.layout:


achemso.layout: FontSize10|11|12
acmsiggraph.layout:  FontSize   9|10|11|12
agutex.layout:  FontSize10|11|12
amsart.layout:  FontSize   8|9|10|11|12
amsbook.layout: FontSize   8|9|10|11|12
apa6.layout:FontSize  10|11|12
apa.layout: FontSize  6|8|10|12
broadway.layout:FontSize12
dtk.layout: FontSize  default # only 10pt in fact of A5
elsarticle.layout:  FontSize10|11|12
elsart.layout:#  FontSize default   # controlled by class
entcs.layout:   FontSize   11
extarticle.layout:  FontSize  8|9|10|11|12|14|17|20
extbook.layout: FontSize  8|9|10|11|12|14|17|20
extletter.layout:   FontSize  8|9|10|11|12|14|17|20
extreport.layout:   FontSize  8|9|10|11|12|14|17|20
foils.layout:   FontSize  17|20|25|30
hollywood.layout:   FontSize  12
IEEEtran-CompSoc.layout:  FontSize  12
IEEEtran.layout:  FontSize  9|10|11|12
iopart.layout:  FontSize10|12
jasatex.layout: FontSize10|11|12
latex8.layout:   FontSize 10
ltugboat.layout:FontSize  default # only 11pt
memoir.layout:  FontSize 9|10|11|12|14|17
powerdot.layout:  FontSize 
size=8|size=9|size=10|size=11|size=12|size=14|size=17|size=20

sciposter.layout:   FontSize  14|17|20|25|30|36
seminar.layout: FontSize8|9|10|11|12|14|17
siamltex.layout:FontSize   8|9|10|11|12
sigplanconf.layout:  FontSize   9|10|11
slides.layout:  FontSize   |
svmono.layout:  FontSize10
svmult.layout:  FontSize

In particular, Powerdot has a special syntax, but the default font size 
is too big anyways (magnification=2000) so it's better to compute the 
font size from the log file, and this is precisely what 
extract_resolution already does.)


lyx-preview-sigsegv.lyx
Description: application/lyx


lyx-preview-fontsize.lyx
Description: application/lyx
diff --git a/lib/scripts/lyxpreview2bitmap.py b/lib/scripts/lyxpreview2bitmap.py
index 9775b0e..f9ee3b3 100755
--- a/lib/scripts/lyxpreview2bitmap.py
+++ b/lib/scripts/lyxpreview2bitmap.py
@@ -77,7 +77,7 @@
 
 import getopt, glob, os, re, shutil, string, sys
 
-from legacy_lyxpreview2ppm import legacy_conversion_step1
+from legacy_lyxpreview2ppm import legacy_conversion_step1, extract_resolution
 
 from lyxpreview_tools import bibtex_commands, check_latex_log, copyfileobj, \
  error, filter_pages, find_exe, find_exe_or_terminate, \
@@ -159,7 +159,6 @@ def extract_metrics_info(dvipng_stdout):
 
 
 def fix_latex_file(latex_file, pdf_output):
-documentclass_re = re.compile((documentclass\[)(1[012]pt,?)(.+))
 def_re = re.compile(r(\\newcommandx|\\global\\long\\def)(\\[a-zA-Z]+))
 
 tmp = mkstemp()
@@ -167,14 

Re: test of math previews

2015-06-22 Thread Enrico Forestieri
On Sat, Jun 20, 2015 at 02:11:53AM +0200, Enrico Forestieri wrote:
 On Fri, Jun 19, 2015 at 04:50:43PM +0100, Guillaume M-M wrote:
 
  Also, lyx-preview-macros-2-lassert.lyx no longer lasserts but on opening the
  preview is not generated because \Coloneqq is not defined. This looks like
  the bug that you are referring to in your message where packages for symbols
  are not properly loaded. But, notice that the preview is correctly generated
  on a second time, when entering and leaving the math inset. So maybe it's
  easier to fix than it seemed. But indeed it's not a regression.
 
 Yes, this has always been the case, seemingly. However, now one can obtain
 a preview after entering and exiting a math inset, while previously the
 preview was simply never generated. So, this is a step forward. As regards
 the reason it occurs, I have still to investigate the matter.

I had a closer look and this is a quite strange issue. It seems that this
occurs only for a lonely math inset. Enable instant preview for math and
then try loading the attached examples. Only the first one will fail.

I think that this is due to the fact that the MacroData of the global
macros defined in the lib/symbols file is set only after the first
call to updateMacros() and when there is only a math inset, that method
has no chance of being called and thus we miss the requirements.
This seems to be confirmed by the attached patch for master which allows
to preview all of the attached documents on loading.

The patch is quite simple but it seems to cure a very particular case,
so I am not sure it is worth applying. What do others think?

-- 
Enrico
diff --git a/src/mathed/MathMacro.cpp b/src/mathed/MathMacro.cpp
index 24ebe77..657856e 100644
--- a/src/mathed/MathMacro.cpp
+++ b/src/mathed/MathMacro.cpp
@@ -707,8 +707,21 @@ size_t MathMacro::appetite() const
 
 void MathMacro::validate(LaTeXFeatures  features) const
 {
+   // Immediately after a document is loaded, in some cases the MacroData
+   // of the global macros defined in the lib/symbols file may still not
+   // be known to the macro machinery because it will be set only after
+   // the first call to updateMacros(). This is not a problem unless
+   // instant preview is on for math, in which case we will be missing
+   // the corresponding requirements.
+   // In this case, we get the required info from the global macro table.
if (!d-requires_.empty())
features.require(d-requires_);
+   else if (!d-macro_) {
+   // Update requires for known global macros.
+   MacroData const * data = MacroTable::globalMacros().get(name());
+   if (data)
+   features.require(data-requires());
+   }
 
if (name() == binom)
features.require(binom);
#LyX 2.1 created this file. For more info see http://www.lyx.org/
\lyxformat 474
\begin_document
\begin_header
\textclass article
\use_default_options false
\maintain_unincluded_children false
\language english
\language_package default
\inputencoding auto
\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_math auto
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize default
\use_hyperref false
\papersize default
\use_geometry false
\use_package amsmath 1
\use_package amssymb 1
\use_package cancel 1
\use_package esint 1
\use_package mathdots 0
\use_package mathtools 0
\use_package mhchem 1
\use_package stackrel 1
\use_package stmaryrd 1
\use_package undertilde 1
\cite_engine basic
\cite_engine_type default
\biblio_style plain
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\justification true
\use_refstyle 0
\index Index
\shortcut idx
\color #008000
\end_index
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\paragraph_indentation default
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header

\begin_body

\begin_layout Standard
\begin_inset Formula $\Coloneqq$
\end_inset

 
\begin_inset Note Note
status open

\begin_layout Plain Layout
This fails to preview on loading
\end_layout

\end_inset

 
\end_layout

\end_body
\end_document
#LyX 2.1 created this file. For more info see http://www.lyx.org/
\lyxformat 474
\begin_document
\begin_header
\textclass article
\use_default_options false
\maintain_unincluded_children false
\language english
\language_package default
\inputencoding auto
\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_math auto
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 

boost 1.58 and 2.1.x branch

2015-06-22 Thread Cor Blom

Hi,

openSUSE Factory/Tumbleweed now has boost 1.58. We build lyx against 
system boost and for 2.1.3 this fails now because of boost. In master 
this has been fixed, is it possible to backport this to branch?


If this is too complicated then I'll just build with internal boost 
until 2.2.


Thanks,

Cor

BTW: Factory/Tumbleweed also defaults to gcc5 now, but a fix for that is 
already part of branch.


Re: test of math previews

2015-06-22 Thread Guillaume M-M

Le 23/06/2015 02:34, Guillaume M-M a écrit :

Another segfault in the stable branch involving previews (and master as
well). When Instant preview is on and one copies a formula, it randomly
crashes. In the attached, select the math inset and hold Ctrl+C until it
segfaults. Sometimes it happens on the first press. This is pretty
annoying because it's not a corner case at all. There is a very simple
math macro, but it does not crash with preview off.

The positive side is that I am getting a glimpse that having instant
previews that actually work is very pleasing :)


Stack trace:

Stable:

0x76360a48 in std::basic_stringwchar_t,
std::char_traitswchar_t, std::allocatorwchar_t
 ::basic_string(std::basic_stringwchar_t, std::char_traitswchar_t,
std::allocatorwchar_t  const) () from
/usr/lib/x86_64-linux-gnu/libstdc++.so.6

Master:

0x0044e2e2 in ?? ()


Does not take cd046f0e into account. Let me test again.



Re: test of math previews

2015-06-22 Thread Guillaume M-M
Another segfault in the stable branch involving previews (and master as 
well). When Instant preview is on and one copies a formula, it randomly 
crashes. In the attached, select the math inset and hold Ctrl+C until it 
segfaults. Sometimes it happens on the first press. This is pretty 
annoying because it's not a corner case at all. There is a very simple 
math macro, but it does not crash with preview off.


The positive side is that I am getting a glimpse that having instant 
previews that actually work is very pleasing :)



Stack trace:

Stable:

0x76360a48 in std::basic_stringwchar_t, 
std::char_traitswchar_t, std::allocatorwchar_t 
::basic_string(std::basic_stringwchar_t, std::char_traitswchar_t, 
std::allocatorwchar_t  const) () from 
/usr/lib/x86_64-linux-gnu/libstdc++.so.6


Master:

0x0044e2e2 in ?? ()


lyx-preview-sigsegv3.lyx
Description: application/lyx


Re: test of math previews

2015-06-22 Thread Guillaume M-M

Le 23/06/2015 02:36, Guillaume M-M a écrit :

Le 23/06/2015 02:34, Guillaume M-M a écrit :

Another segfault in the stable branch involving previews (and master as
well). When Instant preview is on and one copies a formula, it randomly
crashes. In the attached, select the math inset and hold Ctrl+C until it
segfaults. Sometimes it happens on the first press. This is pretty
annoying because it's not a corner case at all. There is a very simple
math macro, but it does not crash with preview off.

The positive side is that I am getting a glimpse that having instant
previews that actually work is very pleasing :)


Stack trace:

Stable:

0x76360a48 in std::basic_stringwchar_t,
std::char_traitswchar_t, std::allocatorwchar_t
 ::basic_string(std::basic_stringwchar_t, std::char_traitswchar_t,
std::allocatorwchar_t  const) () from
/usr/lib/x86_64-linux-gnu/libstdc++.so.6

Master:

0x0044e2e2 in ?? ()


Does not take cd046f0e into account. Let me test again.





Still there at cd046f0e (master). But here's the trace I get when it 
crashes right at the first Ctrl+C:



(  1) src/lyx: src/lyx() [0x9c14e8]
(  2) src/lyx: src/lyx() [0x9c257b]
(  3) src/lyx: src/lyx() [0x9c2fc3]
(  4) src/lyx: src/lyx() [0xa2c091]
(  5) src/lyx: src/lyx() [0x9bfe57]
(  6) src/lyx: src/lyx() [0x5ef49a]
(  7) /lib/x86_64-linux-gnu/libc.so.6: 
/lib/x86_64-linux-gnu/libc.so.6(+0x352f0) [0x7f15240122f0]
(  8) src/lyx: std::basic_stringwchar_t, std::char_traitswchar_t, 
std::allocatorwchar_t ::basic_string(std::basic_stringwchar_t, 
std::char_traitswchar_t, std::allocatorwchar_t  const)

(  9) src/lyx: src/lyx() [0x7fb7da]
( 10) src/lyx: src/lyx() [0x7f1f9e]
( 11) src/lyx: src/lyx() [0x819460]
( 12) src/lyx: src/lyx() [0x7e25e0]
( 13) src/lyx: src/lyx() [0x819474]
( 14) src/lyx: src/lyx() [0x79d36c]
( 15) src/lyx: src/lyx() [0x7acfd1]
( 16) src/lyx: src/lyx() [0x65e239]
( 17) src/lyx: src/lyx() [0x644f58]
( 18) src/lyx: src/lyx() [0x647093]
( 19) src/lyx: src/lyx() [0x4b07c4]
( 20) src/lyx: src/lyx() [0x54e75e]
( 21) src/lyx: src/lyx() [0x54f840]
( 22) src/lyx: src/lyx() [0x54f929]
( 23) src/lyx: src/lyx() [0x6b0cda]
( 24) src/lyx: src/lyx() [0x993d06]
( 25) src/lyx: src/lyx() [0x872032]
( 26) src/lyx: src/lyx() [0x53fd7e]
( 27) src/lyx: src/lyx() [0x9f260e]
( 28) src/lyx: src/lyx() [0xa0a048]
( 29) src/lyx: src/lyx() [0x9d603f]
( 30) src/lyx: src/lyx() [0x9c5eb5]
( 31) src/lyx: src/lyx() [0x5edd5a]
( 32) src/lyx: src/lyx() [0x9c83d3]
( 33) src/lyx: src/lyx() [0xa1dd25]
( 34) src/lyx: src/lyx() [0xa2073c]
( 35) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: QWidget::event(QEvent*)
( 36) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: QFrame::event(QEvent*)
( 37) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
QAbstractScrollArea::event(QEvent*)

( 38) src/lyx: src/lyx() [0xa20f14]
( 39) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
QApplicationPrivate::notify_helper(QObject*, QEvent*)
( 40) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
QApplication::notify(QObject*, QEvent*)

( 41) src/lyx: src/lyx() [0x9d760a]
( 42) /usr/lib/x86_64-linux-gnu/libQtCore.so.4: 
QCoreApplication::notifyInternal(QObject*, QEvent*)
( 43) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x26e023) [0x7f1525333023]
( 44) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x26e4c2) [0x7f15253334c2]
( 45) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
QApplication::x11ProcessEvent(_XEvent*)
( 46) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x270ba2) [0x7f1525335ba2]
( 47) /lib/x86_64-linux-gnu/libglib-2.0.so.0: 
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x24d) 
[0x7f1523b13c3d]
( 48) /lib/x86_64-linux-gnu/libglib-2.0.so.0: 
/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x49f20) [0x7f1523b13f20]
( 49) /lib/x86_64-linux-gnu/libglib-2.0.so.0: 
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x2c) 
[0x7f1523b13fcc]
( 50) /usr/lib/x86_64-linux-gnu/libQtCore.so.4: 
QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag)
( 51) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x270c66) [0x7f1525335c66]
( 52) /usr/lib/x86_64-linux-gnu/libQtCore.so.4: 
QEventLoop::processEvents(QFlagsQEventLoop::ProcessEventsFlag)
( 53) /usr/lib/x86_64-linux-gnu/libQtCore.so.4: 
QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag)

( 54) /usr/lib/x86_64-linux-gnu/libQtCore.so.4: QCoreApplication::exec()
( 55) src/lyx: src/lyx() [0x9c33a9]
( 56) src/lyx: src/lyx() [0x5f7e85]
( 57) src/lyx: src/lyx() [0x43a64e]
( 58) /lib/x86_64-linux-gnu/libc.so.6: 
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7f1523ffda40]

( 59) src/lyx: src/lyx() [0x43a539]



Re: boost 1.58 and 2.1.x branch

2015-06-22 Thread Cor Blom
My problem has disappeared with updated packages. So never mind. Sorry 
for the noise.


Cor


Op 22-06-15 om 09:16 schreef Cor Blom:

Hi,

openSUSE Factory/Tumbleweed now has boost 1.58. We build lyx against
system boost and for 2.1.3 this fails now because of boost. In master
this has been fixed, is it possible to backport this to branch?

If this is too complicated then I'll just build with internal boost
until 2.2.

Thanks,

Cor

BTW: Factory/Tumbleweed also defaults to gcc5 now, but a fix for that is
already part of branch.





Re: [PATCH] Auto feature for minibuffer toolbar

2015-06-22 Thread Jean-Marc Lasgouttes

Le 19/06/2015 16:31, Kornel Benko a écrit :

 From memory:
1.) start lyx, the minibuffer is already displayed.
2.) open any file
3.) M-x, the cursor is displayed in the minibuffer
4.) M-x, in the minibuffer appears 'x'
5.) click on a view, cursor is displayed in both, minibuffer and buffer
6.) enter 'abcd', it goes to minibuffer and not to buffer


Try this one. It fixes this problem and:
- do not close the minibuffer if the action gave an error; currently it 
relies on DispatchResult::error()
- simplifies the code: get rid of the spacial off parameter to 
command-execute.

- get rid of the hard-coded M-x to close the minibuffer.

I understand that the behavior of the patch is still not optimal. 
Comments are welcome.


JMarc



From ab30fc380428defa66e16d594aac3f0ff88bc089 Mon Sep 17 00:00:00 2001
From: Jean-Marc Lasgouttes lasgout...@lyx.org
Date: Sat, 18 Apr 2015 19:10:33 +0200
Subject: [PATCH] Auto feature for minibuffer toolbar

Now the minibuffer toolbar is auto by default. It is opened by
command-execute (M-x) and closed when the command is executed without error.

* make lyx::dispatch return a DispatchResult struct

* there is a new MINIBUFFER type of toolbar, that can be used for this use.

* remove special handling of M-x in minnibuffer; Escape can be used instead. Fix focus in this case.

* when minibuffer toolbar is auto, make the toolbar close itself after
  - a command has been executed without error
  - an empty command has been executed
  - the Escape key has been used
---
 lib/ui/default.ui  |2 +-
 src/LyX.cpp|4 +--
 src/LyX.h  |4 +--
 src/frontends/Application.h|2 +-
 src/frontends/qt4/GuiApplication.cpp   |8 +-
 src/frontends/qt4/GuiApplication.h |2 +-
 src/frontends/qt4/GuiCommandBuffer.cpp |   47 +---
 src/frontends/qt4/GuiCommandBuffer.h   |   10 +++
 src/frontends/qt4/GuiCommandEdit.cpp   |8 --
 src/frontends/qt4/GuiCommandEdit.h |2 --
 src/frontends/qt4/GuiToolbar.cpp   |6 +++-
 src/frontends/qt4/GuiView.cpp  |   21 --
 src/frontends/qt4/GuiView.h|5 
 src/frontends/qt4/Toolbars.cpp |2 ++
 src/frontends/qt4/Toolbars.h   |3 +-
 15 files changed, 63 insertions(+), 63 deletions(-)

diff --git a/lib/ui/default.ui b/lib/ui/default.ui
index fa20f1d..34f5651 100644
--- a/lib/ui/default.ui
+++ b/lib/ui/default.ui
@@ -56,5 +56,5 @@ Toolbars
 	math auto,math,bottom
 	mathmacrotemplate auto,mathmacrotemplate,bottom
 	ipa auto,ipa,bottom
-	minibuffer off,bottom
+	minibuffer auto,minibuffer,bottom
 End
diff --git a/src/LyX.cpp b/src/LyX.cpp
index d70c6b0..8b713aa 100644
--- a/src/LyX.cpp
+++ b/src/LyX.cpp
@@ -1352,7 +1352,7 @@ FuncStatus getStatus(FuncRequest const  action)
 }
 
 
-void dispatch(FuncRequest const  action)
+DispatchResult const  dispatch(FuncRequest const  action)
 {
 	LAPPERR(theApp());
 	return theApp()-dispatch(action);
@@ -1362,7 +1362,7 @@ void dispatch(FuncRequest const  action)
 void dispatch(FuncRequest const  action, DispatchResult  dr)
 {
 	LAPPERR(theApp());
-	return theApp()-dispatch(action, dr);
+	theApp()-dispatch(action, dr);
 }
 
 
diff --git a/src/LyX.h b/src/LyX.h
index ccce7a3..9980ab5 100644
--- a/src/LyX.h
+++ b/src/LyX.h
@@ -135,7 +135,7 @@ private:
 	bool first_start;
 
 	friend FuncStatus getStatus(FuncRequest const  action);
-	friend void dispatch(FuncRequest const  action);
+	friend DispatchResult const  dispatch(FuncRequest const  action);
 	friend void dispatch(FuncRequest const  action, DispatchResult  dr);
 	friend std::vectorstd::string  theFilesToLoad();
 	friend BufferList  theBufferList();
@@ -175,7 +175,7 @@ void execBatchCommands();
 FuncStatus getStatus(FuncRequest const  action);
 
 ///
-void dispatch(FuncRequest const  action);
+DispatchResult const  dispatch(FuncRequest const  action);
 
 ///
 void dispatch(FuncRequest const  action, DispatchResult  dr);
diff --git a/src/frontends/Application.h b/src/frontends/Application.h
index ca5ea44..df0be95 100644
--- a/src/frontends/Application.h
+++ b/src/frontends/Application.h
@@ -177,7 +177,7 @@ public:
 	/// Every user command is processed here, either invocated from
 	/// keyboard or from the GUI. All GUI objects, including buttons and
 	/// menus should use this class and never call kernel functions directly.
-	virtual void dispatch(FuncRequest const ) = 0;
+	virtual DispatchResult const  dispatch(FuncRequest const ) = 0;
 
 	/// LyX dispatcher: executes lyx actions and returns result.
 	virtual void dispatch(FuncRequest const , DispatchResult  dr) = 0;
diff --git a/src/frontends/qt4/GuiApplication.cpp b/src/frontends/qt4/GuiApplication.cpp
index 8bd22c8..fa66871 100644
--- a/src/frontends/qt4/GuiApplication.cpp
+++ b/src/frontends/qt4/GuiApplication.cpp
@@ -965,6 +965,9 @@ struct GuiApplication::Private
 	///
 	KeyModifier meta_fake_bit;
 
+	/// The result 

Re: boost 1.58 and 2.1.x branch

2015-06-22 Thread Jean-Marc Lasgouttes

Le 22/06/2015 15:43, Cor Blom a écrit :

My problem has disappeared with updated packages. So never mind. Sorry
for the noise.


Don't be sorry, don't hesitate to send bug reports our way.

JMarc



boost 1.58 and 2.1.x branch

2015-06-22 Thread Cor Blom

Hi,

openSUSE Factory/Tumbleweed now has boost 1.58. We build lyx against 
system boost and for 2.1.3 this fails now because of boost. In master 
this has been fixed, is it possible to backport this to branch?


If this is too complicated then I'll just build with internal boost 
until 2.2.


Thanks,

Cor

BTW: Factory/Tumbleweed also defaults to gcc5 now, but a fix for that is 
already part of branch.


Re: boost 1.58 and 2.1.x branch

2015-06-22 Thread Cor Blom
My problem has disappeared with updated packages. So never mind. Sorry 
for the noise.


Cor


Op 22-06-15 om 09:16 schreef Cor Blom:

Hi,

openSUSE Factory/Tumbleweed now has boost 1.58. We build lyx against
system boost and for 2.1.3 this fails now because of boost. In master
this has been fixed, is it possible to backport this to branch?

If this is too complicated then I'll just build with internal boost
until 2.2.

Thanks,

Cor

BTW: Factory/Tumbleweed also defaults to gcc5 now, but a fix for that is
already part of branch.





Re: boost 1.58 and 2.1.x branch

2015-06-22 Thread Jean-Marc Lasgouttes

Le 22/06/2015 15:43, Cor Blom a écrit :

My problem has disappeared with updated packages. So never mind. Sorry
for the noise.


Don't be sorry, don't hesitate to send bug reports our way.

JMarc



Re: [PATCH] Auto feature for minibuffer toolbar

2015-06-22 Thread Jean-Marc Lasgouttes

Le 19/06/2015 16:31, Kornel Benko a écrit :

 From memory:
1.) start lyx, the minibuffer is already displayed.
2.) open any file
3.) M-x, the cursor is displayed in the minibuffer
4.) M-x, in the minibuffer appears 'x'
5.) click on a view, cursor is displayed in both, minibuffer and buffer
6.) enter 'abcd', it goes to minibuffer and not to buffer


Try this one. It fixes this problem and:
- do not close the minibuffer if the action gave an error; currently it 
relies on DispatchResult::error()
- simplifies the code: get rid of the spacial "off" parameter to 
command-execute.

- get rid of the hard-coded M-x to close the minibuffer.

I understand that the behavior of the patch is still not optimal. 
Comments are welcome.


JMarc



>From ab30fc380428defa66e16d594aac3f0ff88bc089 Mon Sep 17 00:00:00 2001
From: Jean-Marc Lasgouttes 
Date: Sat, 18 Apr 2015 19:10:33 +0200
Subject: [PATCH] Auto feature for minibuffer toolbar

Now the minibuffer toolbar is "auto" by default. It is opened by
command-execute (M-x) and closed when the command is executed without error.

* make lyx::dispatch return a DispatchResult struct

* there is a new MINIBUFFER type of toolbar, that can be used for this use.

* remove special handling of M-x in minnibuffer; Escape can be used instead. Fix focus in this case.

* when minibuffer toolbar is "auto", make the toolbar close itself after
  - a command has been executed without error
  - an empty command has been executed
  - the Escape key has been used
---
 lib/ui/default.ui  |2 +-
 src/LyX.cpp|4 +--
 src/LyX.h  |4 +--
 src/frontends/Application.h|2 +-
 src/frontends/qt4/GuiApplication.cpp   |8 +-
 src/frontends/qt4/GuiApplication.h |2 +-
 src/frontends/qt4/GuiCommandBuffer.cpp |   47 +---
 src/frontends/qt4/GuiCommandBuffer.h   |   10 +++
 src/frontends/qt4/GuiCommandEdit.cpp   |8 --
 src/frontends/qt4/GuiCommandEdit.h |2 --
 src/frontends/qt4/GuiToolbar.cpp   |6 +++-
 src/frontends/qt4/GuiView.cpp  |   21 --
 src/frontends/qt4/GuiView.h|5 
 src/frontends/qt4/Toolbars.cpp |2 ++
 src/frontends/qt4/Toolbars.h   |3 +-
 15 files changed, 63 insertions(+), 63 deletions(-)

diff --git a/lib/ui/default.ui b/lib/ui/default.ui
index fa20f1d..34f5651 100644
--- a/lib/ui/default.ui
+++ b/lib/ui/default.ui
@@ -56,5 +56,5 @@ Toolbars
 	"math" "auto,math,bottom"
 	"mathmacrotemplate" "auto,mathmacrotemplate,bottom"
 	"ipa" "auto,ipa,bottom"
-	"minibuffer" "off,bottom"
+	"minibuffer" "auto,minibuffer,bottom"
 End
diff --git a/src/LyX.cpp b/src/LyX.cpp
index d70c6b0..8b713aa 100644
--- a/src/LyX.cpp
+++ b/src/LyX.cpp
@@ -1352,7 +1352,7 @@ FuncStatus getStatus(FuncRequest const & action)
 }
 
 
-void dispatch(FuncRequest const & action)
+DispatchResult const & dispatch(FuncRequest const & action)
 {
 	LAPPERR(theApp());
 	return theApp()->dispatch(action);
@@ -1362,7 +1362,7 @@ void dispatch(FuncRequest const & action)
 void dispatch(FuncRequest const & action, DispatchResult & dr)
 {
 	LAPPERR(theApp());
-	return theApp()->dispatch(action, dr);
+	theApp()->dispatch(action, dr);
 }
 
 
diff --git a/src/LyX.h b/src/LyX.h
index ccce7a3..9980ab5 100644
--- a/src/LyX.h
+++ b/src/LyX.h
@@ -135,7 +135,7 @@ private:
 	bool first_start;
 
 	friend FuncStatus getStatus(FuncRequest const & action);
-	friend void dispatch(FuncRequest const & action);
+	friend DispatchResult const & dispatch(FuncRequest const & action);
 	friend void dispatch(FuncRequest const & action, DispatchResult & dr);
 	friend std::vector & theFilesToLoad();
 	friend BufferList & theBufferList();
@@ -175,7 +175,7 @@ void execBatchCommands();
 FuncStatus getStatus(FuncRequest const & action);
 
 ///
-void dispatch(FuncRequest const & action);
+DispatchResult const & dispatch(FuncRequest const & action);
 
 ///
 void dispatch(FuncRequest const & action, DispatchResult & dr);
diff --git a/src/frontends/Application.h b/src/frontends/Application.h
index ca5ea44..df0be95 100644
--- a/src/frontends/Application.h
+++ b/src/frontends/Application.h
@@ -177,7 +177,7 @@ public:
 	/// Every user command is processed here, either invocated from
 	/// keyboard or from the GUI. All GUI objects, including buttons and
 	/// menus should use this class and never call kernel functions directly.
-	virtual void dispatch(FuncRequest const &) = 0;
+	virtual DispatchResult const & dispatch(FuncRequest const &) = 0;
 
 	/// LyX dispatcher: executes lyx actions and returns result.
 	virtual void dispatch(FuncRequest const &, DispatchResult & dr) = 0;
diff --git a/src/frontends/qt4/GuiApplication.cpp b/src/frontends/qt4/GuiApplication.cpp
index 8bd22c8..fa66871 100644
--- a/src/frontends/qt4/GuiApplication.cpp
+++ b/src/frontends/qt4/GuiApplication.cpp
@@ -965,6 +965,9 @@ struct GuiApplication::Private
 	///
 

Re: [PATCH] Auto feature for minibuffer toolbar

2015-06-22 Thread Kornel Benko
Am Montag, 22. Juni 2015 um 16:10:35, schrieb Jean-Marc Lasgouttes 

> Le 19/06/2015 16:31, Kornel Benko a écrit :
> >  From memory:
> > 1.) start lyx, the minibuffer is already displayed.
> > 2.) open any file
> > 3.) M-x, the cursor is displayed in the minibuffer
> > 4.) M-x, in the minibuffer appears 'x'
> > 5.) click on a view, cursor is displayed in both, minibuffer and buffer
> > 6.) enter 'abcd', it goes to minibuffer and not to buffer
> 
> Try this one. It fixes this problem and:
> - do not close the minibuffer if the action gave an error; currently it 
> relies on DispatchResult::error()
> - simplifies the code: get rid of the spacial "off" parameter to 
> command-execute.
> - get rid of the hard-coded M-x to close the minibuffer.
> 
> I understand that the behavior of the patch is still not optimal. 
> Comments are welcome.
> 
> JMarc
> 

This one definitely is better.

Next glitch, sorry:

Calling e.g. 'M-x dialog-show spellchecker'
not only opens the dialog, but executes it, so that there is a dialog message
'We are at end of document, do you want to proceed from the start'
Clocking on 'yes' or 'no' closes the minibuffer _and_ also the spellchecker 
window.

This behaviour is not OK, since our key-tests cannot work anymore.

Kornel

signature.asc
Description: This is a digitally signed message part.


Re: [PATCH] Auto feature for minibuffer toolbar

2015-06-22 Thread Kornel Benko
Am Montag, 22. Juni 2015 um 16:53:06, schrieb Kornel Benko 
> Am Montag, 22. Juni 2015 um 16:10:35, schrieb Jean-Marc Lasgouttes 
> 
> > Le 19/06/2015 16:31, Kornel Benko a écrit :
> > >  From memory:
> > > 1.) start lyx, the minibuffer is already displayed.
> > > 2.) open any file
> > > 3.) M-x, the cursor is displayed in the minibuffer
> > > 4.) M-x, in the minibuffer appears 'x'
> > > 5.) click on a view, cursor is displayed in both, minibuffer and buffer
> > > 6.) enter 'abcd', it goes to minibuffer and not to buffer
> > 
> > Try this one. It fixes this problem and:
> > - do not close the minibuffer if the action gave an error; currently it 
> > relies on DispatchResult::error()
> > - simplifies the code: get rid of the spacial "off" parameter to 
> > command-execute.
> > - get rid of the hard-coded M-x to close the minibuffer.
> > 
> > I understand that the behavior of the patch is still not optimal. 
> > Comments are welcome.
> > 
> > JMarc
> > 
> 
> This one definitely is better.
> 
> Next glitch, sorry:
> 
> Calling e.g. 'M-x dialog-show spellchecker'
> not only opens the dialog, but executes it, so that there is a dialog message
>   'We are at end of document, do you want to proceed from the start'
> Clocking on 'yes' or 'no' closes the minibuffer _and_ also the spellchecker 
> window.
> 
> This behaviour is not OK, since our key-tests cannot work anymore.
> 

Wrong example. The file had no problems with spellchecking, the behaviour with 
the dialog is the same as before.
The only difference is the now closed minibuffer.

Using e.g. 'dialog-show findreplaceadv', it behaves like expected.

Kornel


signature.asc
Description: This is a digitally signed message part.


Re: test of math previews

2015-06-22 Thread Guillaume M-M
Three bugs in the current stable (93c0512b). The third one has an easy 
fix (and also a very trivial partial fix if you want to move forward 
with the release). The first two could be postponed after the release, 
or maybe they are trivial as well to Enrico. Found the first two while 
testing my solution to the third one.


1) SIGSEGV with previews (no math macros involved). I believe this is 
the one I mentioned in a previous message. See the attached 
lyx-preview-sigsegv.lyx for instructions.



2) Closing a file whose previews are being generated results in an error 
dialog "Could not remove the temporary directory 
/tmp/lyx_tmpdir.LXSnBrW17125" and the following output on the terminal:


Warning: Could not remove temporary directory

Could not remove the temporary directory 
/tmp/lyx_tmpdir.LXSnBrW17125/lyx_tmpbuf0
Warning: Warning in extract_resolution! Unable to open 
"lyxpreviewQ17125_legacy.log"

Warning: ,IOError(2, 'No such file or directory')
Warning: check_latex_log: Unable to open "lyxpreviewQ17125_legacy.log"
Warning: ,IOError(2, 'No such file or directory')
Warning: Warning in legacy_extract_metrics_info! Unable to open 
"lyxpreviewQ17125_legacy.log"

Warning: ,IOError(2, 'No such file or directory')
Error: Failed to extract metrics info from lyxpreviewQ17125_legacy.log

So there's some additional cleanup to do now when closing a file.


3) Previews have the incorrect size with layouts that offer font sizes 
other than 1[0-2]pt (lyx-preview-fontsize.lyx). The legacy method offers 
a function that retrieves the actual font size and calculates the actual 
dpi. Attached is a patch (extract_resolution.diff) that imports this 
function in the new script.


(It's possible to just replace:
documentclass_re = re.compile("(documentclass\[)(1[012]pt,?)(.+)")
with:
documentclass_re = re.compile("(documentclass\[)([0-9]+pt,?)(.+)")
but this does not take into account custom classes, options, preambles, 
etc. If this path is retained, here's the result of $grep FontSize 
*.layout:


achemso.layout: FontSize10|11|12
acmsiggraph.layout:  FontSize   9|10|11|12
agutex.layout:  FontSize10|11|12
amsart.layout:  FontSize   8|9|10|11|12
amsbook.layout: FontSize   8|9|10|11|12
apa6.layout:FontSize  10|11|12
apa.layout: FontSize  6|8|10|12
broadway.layout:FontSize12
dtk.layout: FontSize  default # only 10pt in fact of A5
elsarticle.layout:  FontSize10|11|12
elsart.layout:#  FontSize "default"   # controlled by class
entcs.layout:   FontSize   11
extarticle.layout:  FontSize  8|9|10|11|12|14|17|20
extbook.layout: FontSize  8|9|10|11|12|14|17|20
extletter.layout:   FontSize  8|9|10|11|12|14|17|20
extreport.layout:   FontSize  8|9|10|11|12|14|17|20
foils.layout:   FontSize  17|20|25|30
hollywood.layout:   FontSize  12
IEEEtran-CompSoc.layout:  FontSize  12
IEEEtran.layout:  FontSize  9|10|11|12
iopart.layout:  FontSize10|12
jasatex.layout: FontSize10|11|12
latex8.layout:   FontSize 10
ltugboat.layout:FontSize  default # only 11pt
memoir.layout:  FontSize 9|10|11|12|14|17
powerdot.layout:  FontSize 
size=8|size=9|size=10|size=11|size=12|size=14|size=17|size=20

sciposter.layout:   FontSize  14|17|20|25|30|36
seminar.layout: FontSize8|9|10|11|12|14|17
siamltex.layout:FontSize   8|9|10|11|12
sigplanconf.layout:  FontSize   9|10|11
slides.layout:  FontSize   |
svmono.layout:  FontSize10
svmult.layout:  FontSize""

In particular, Powerdot has a special syntax, but the default font size 
is too big anyways (magnification=2000) so it's better to compute the 
font size from the log file, and this is precisely what 
extract_resolution already does.)


lyx-preview-sigsegv.lyx
Description: application/lyx


lyx-preview-fontsize.lyx
Description: application/lyx
diff --git a/lib/scripts/lyxpreview2bitmap.py b/lib/scripts/lyxpreview2bitmap.py
index 9775b0e..f9ee3b3 100755
--- a/lib/scripts/lyxpreview2bitmap.py
+++ b/lib/scripts/lyxpreview2bitmap.py
@@ -77,7 +77,7 @@
 
 import getopt, glob, os, re, shutil, string, sys
 
-from legacy_lyxpreview2ppm import legacy_conversion_step1
+from legacy_lyxpreview2ppm import legacy_conversion_step1, extract_resolution
 
 from lyxpreview_tools import bibtex_commands, check_latex_log, copyfileobj, \
  error, filter_pages, find_exe, find_exe_or_terminate, \
@@ -159,7 +159,6 @@ def extract_metrics_info(dvipng_stdout):
 
 
 def fix_latex_file(latex_file, pdf_output):
-documentclass_re = re.compile("(documentclass\[)(1[012]pt,?)(.+)")
 def_re = re.compile(r"(\\newcommandx|\\global\\long\\def)(\\[a-zA-Z]+)")
 
 tmp = mkstemp()
@@ -167,14 +166,9 @@ def fix_latex_file(latex_file, pdf_output):
 

Re: test of math previews

2015-06-22 Thread Enrico Forestieri
On Sat, Jun 20, 2015 at 02:11:53AM +0200, Enrico Forestieri wrote:
> On Fri, Jun 19, 2015 at 04:50:43PM +0100, Guillaume M-M wrote:
> 
> > Also, lyx-preview-macros-2-lassert.lyx no longer lasserts but on opening the
> > preview is not generated because \Coloneqq is not defined. This looks like
> > the bug that you are referring to in your message where packages for symbols
> > are not properly loaded. But, notice that the preview is correctly generated
> > on a second time, when entering and leaving the math inset. So maybe it's
> > easier to fix than it seemed. But indeed it's not a regression.
> 
> Yes, this has always been the case, seemingly. However, now one can obtain
> a preview after entering and exiting a math inset, while previously the
> preview was simply never generated. So, this is a step forward. As regards
> the reason it occurs, I have still to investigate the matter.

I had a closer look and this is a quite strange issue. It seems that this
occurs only for a lonely math inset. Enable instant preview for math and
then try loading the attached examples. Only the first one will fail.

I think that this is due to the fact that the MacroData of the global
macros defined in the lib/symbols file is set only after the first
call to updateMacros() and when there is only a math inset, that method
has no chance of being called and thus we miss the requirements.
This seems to be confirmed by the attached patch for master which allows
to preview all of the attached documents on loading.

The patch is quite simple but it seems to cure a very particular case,
so I am not sure it is worth applying. What do others think?

-- 
Enrico
diff --git a/src/mathed/MathMacro.cpp b/src/mathed/MathMacro.cpp
index 24ebe77..657856e 100644
--- a/src/mathed/MathMacro.cpp
+++ b/src/mathed/MathMacro.cpp
@@ -707,8 +707,21 @@ size_t MathMacro::appetite() const
 
 void MathMacro::validate(LaTeXFeatures & features) const
 {
+   // Immediately after a document is loaded, in some cases the MacroData
+   // of the global macros defined in the lib/symbols file may still not
+   // be known to the macro machinery because it will be set only after
+   // the first call to updateMacros(). This is not a problem unless
+   // instant preview is on for math, in which case we will be missing
+   // the corresponding requirements.
+   // In this case, we get the required info from the global macro table.
if (!d->requires_.empty())
features.require(d->requires_);
+   else if (!d->macro_) {
+   // Update requires for known global macros.
+   MacroData const * data = MacroTable::globalMacros().get(name());
+   if (data)
+   features.require(data->requires());
+   }
 
if (name() == "binom")
features.require("binom");
#LyX 2.1 created this file. For more info see http://www.lyx.org/
\lyxformat 474
\begin_document
\begin_header
\textclass article
\use_default_options false
\maintain_unincluded_children false
\language english
\language_package default
\inputencoding auto
\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_math auto
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize default
\use_hyperref false
\papersize default
\use_geometry false
\use_package amsmath 1
\use_package amssymb 1
\use_package cancel 1
\use_package esint 1
\use_package mathdots 0
\use_package mathtools 0
\use_package mhchem 1
\use_package stackrel 1
\use_package stmaryrd 1
\use_package undertilde 1
\cite_engine basic
\cite_engine_type default
\biblio_style plain
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\justification true
\use_refstyle 0
\index Index
\shortcut idx
\color #008000
\end_index
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\paragraph_indentation default
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header

\begin_body

\begin_layout Standard
\begin_inset Formula $\Coloneqq$
\end_inset

 
\begin_inset Note Note
status open

\begin_layout Plain Layout
This fails to preview on loading
\end_layout

\end_inset

 
\end_layout

\end_body
\end_document
#LyX 2.1 created this file. For more info see http://www.lyx.org/
\lyxformat 474
\begin_document
\begin_header
\textclass article
\use_default_options false
\maintain_unincluded_children false
\language english
\language_package default
\inputencoding auto
\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_math auto
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false

Re: test of math previews

2015-06-22 Thread Enrico Forestieri
On Mon, Jun 22, 2015 at 11:32:17PM +0100, Guillaume M-M wrote:
> 
> 1) SIGSEGV with previews (no math macros involved). I believe this is the
> one I mentioned in a previous message. See the attached
> lyx-preview-sigsegv.lyx for instructions.

Thanks for catching this. I fixed this issue at cd046f0e. The other two
issues are not critical and I'll have a look later.

-- 
Enrico


Re: test of math previews

2015-06-22 Thread Guillaume M-M
Another segfault in the stable branch involving previews (and master as 
well). When Instant preview is on and one copies a formula, it randomly 
crashes. In the attached, select the math inset and hold Ctrl+C until it 
segfaults. Sometimes it happens on the first press. This is pretty 
annoying because it's not a corner case at all. There is a very simple 
math macro, but it does not crash with preview off.


The positive side is that I am getting a glimpse that having instant 
previews that actually work is very pleasing :)



Stack trace:

Stable:

0x76360a48 in std::basic_string::basic_string(std::basic_string const&) () from 
/usr/lib/x86_64-linux-gnu/libstdc++.so.6


Master:

0x0044e2e2 in ?? ()


lyx-preview-sigsegv3.lyx
Description: application/lyx


Re: test of math previews

2015-06-22 Thread Guillaume M-M

Le 23/06/2015 02:34, Guillaume M-M a écrit :

Another segfault in the stable branch involving previews (and master as
well). When Instant preview is on and one copies a formula, it randomly
crashes. In the attached, select the math inset and hold Ctrl+C until it
segfaults. Sometimes it happens on the first press. This is pretty
annoying because it's not a corner case at all. There is a very simple
math macro, but it does not crash with preview off.

The positive side is that I am getting a glimpse that having instant
previews that actually work is very pleasing :)


Stack trace:

Stable:

0x76360a48 in std::basic_string::basic_string(std::basic_string const&) () from
/usr/lib/x86_64-linux-gnu/libstdc++.so.6

Master:

0x0044e2e2 in ?? ()


Does not take cd046f0e into account. Let me test again.



Re: test of math previews

2015-06-22 Thread Guillaume M-M

Le 23/06/2015 02:36, Guillaume M-M a écrit :

Le 23/06/2015 02:34, Guillaume M-M a écrit :

Another segfault in the stable branch involving previews (and master as
well). When Instant preview is on and one copies a formula, it randomly
crashes. In the attached, select the math inset and hold Ctrl+C until it
segfaults. Sometimes it happens on the first press. This is pretty
annoying because it's not a corner case at all. There is a very simple
math macro, but it does not crash with preview off.

The positive side is that I am getting a glimpse that having instant
previews that actually work is very pleasing :)


Stack trace:

Stable:

0x76360a48 in std::basic_string::basic_string(std::basic_string const&) () from
/usr/lib/x86_64-linux-gnu/libstdc++.so.6

Master:

0x0044e2e2 in ?? ()


Does not take cd046f0e into account. Let me test again.





Still there at cd046f0e (master). But here's the trace I get when it 
crashes right at the first Ctrl+C:



(  1) src/lyx: src/lyx() [0x9c14e8]
(  2) src/lyx: src/lyx() [0x9c257b]
(  3) src/lyx: src/lyx() [0x9c2fc3]
(  4) src/lyx: src/lyx() [0xa2c091]
(  5) src/lyx: src/lyx() [0x9bfe57]
(  6) src/lyx: src/lyx() [0x5ef49a]
(  7) /lib/x86_64-linux-gnu/libc.so.6: 
/lib/x86_64-linux-gnu/libc.so.6(+0x352f0) [0x7f15240122f0]
(  8) src/lyx: std::basic_string::basic_string(std::basic_string const&)

(  9) src/lyx: src/lyx() [0x7fb7da]
( 10) src/lyx: src/lyx() [0x7f1f9e]
( 11) src/lyx: src/lyx() [0x819460]
( 12) src/lyx: src/lyx() [0x7e25e0]
( 13) src/lyx: src/lyx() [0x819474]
( 14) src/lyx: src/lyx() [0x79d36c]
( 15) src/lyx: src/lyx() [0x7acfd1]
( 16) src/lyx: src/lyx() [0x65e239]
( 17) src/lyx: src/lyx() [0x644f58]
( 18) src/lyx: src/lyx() [0x647093]
( 19) src/lyx: src/lyx() [0x4b07c4]
( 20) src/lyx: src/lyx() [0x54e75e]
( 21) src/lyx: src/lyx() [0x54f840]
( 22) src/lyx: src/lyx() [0x54f929]
( 23) src/lyx: src/lyx() [0x6b0cda]
( 24) src/lyx: src/lyx() [0x993d06]
( 25) src/lyx: src/lyx() [0x872032]
( 26) src/lyx: src/lyx() [0x53fd7e]
( 27) src/lyx: src/lyx() [0x9f260e]
( 28) src/lyx: src/lyx() [0xa0a048]
( 29) src/lyx: src/lyx() [0x9d603f]
( 30) src/lyx: src/lyx() [0x9c5eb5]
( 31) src/lyx: src/lyx() [0x5edd5a]
( 32) src/lyx: src/lyx() [0x9c83d3]
( 33) src/lyx: src/lyx() [0xa1dd25]
( 34) src/lyx: src/lyx() [0xa2073c]
( 35) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: QWidget::event(QEvent*)
( 36) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: QFrame::event(QEvent*)
( 37) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
QAbstractScrollArea::event(QEvent*)

( 38) src/lyx: src/lyx() [0xa20f14]
( 39) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
QApplicationPrivate::notify_helper(QObject*, QEvent*)
( 40) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
QApplication::notify(QObject*, QEvent*)

( 41) src/lyx: src/lyx() [0x9d760a]
( 42) /usr/lib/x86_64-linux-gnu/libQtCore.so.4: 
QCoreApplication::notifyInternal(QObject*, QEvent*)
( 43) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x26e023) [0x7f1525333023]
( 44) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x26e4c2) [0x7f15253334c2]
( 45) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
QApplication::x11ProcessEvent(_XEvent*)
( 46) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x270ba2) [0x7f1525335ba2]
( 47) /lib/x86_64-linux-gnu/libglib-2.0.so.0: 
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x24d) 
[0x7f1523b13c3d]
( 48) /lib/x86_64-linux-gnu/libglib-2.0.so.0: 
/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x49f20) [0x7f1523b13f20]
( 49) /lib/x86_64-linux-gnu/libglib-2.0.so.0: 
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x2c) 
[0x7f1523b13fcc]
( 50) /usr/lib/x86_64-linux-gnu/libQtCore.so.4: 
QEventDispatcherGlib::processEvents(QFlags)
( 51) /usr/lib/x86_64-linux-gnu/libQtGui.so.4: 
/usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x270c66) [0x7f1525335c66]
( 52) /usr/lib/x86_64-linux-gnu/libQtCore.so.4: 
QEventLoop::processEvents(QFlags)
( 53) /usr/lib/x86_64-linux-gnu/libQtCore.so.4: 
QEventLoop::exec(QFlags)

( 54) /usr/lib/x86_64-linux-gnu/libQtCore.so.4: QCoreApplication::exec()
( 55) src/lyx: src/lyx() [0x9c33a9]
( 56) src/lyx: src/lyx() [0x5f7e85]
( 57) src/lyx: src/lyx() [0x43a64e]
( 58) /lib/x86_64-linux-gnu/libc.so.6: 
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7f1523ffda40]

( 59) src/lyx: src/lyx() [0x43a539]