On 10/20/2010 04:37 AM, Andre Poenitz wrote:
On Wed, Oct 20, 2010 at 03:54:03AM +0200, Peter Kümmel wrote:

I think what's happening is this. If you export pdf (say) without there
already being a pdf file there, then everything is fine. But if the pdf
file exists, then LyX will try to ask the user whether to overwrite.
This means creating a dialog as a child of the parent. But the parent,
from what I can tell, is in the main thread, and that's not allowed.

I'll paste the full error I get below. As you'll see, LyX crashes here.
Here's the backtrace:
This makes it complicated: pass a signal via Qt::QueuedConnection to
the gui thread and wait for the answer before continuing.

Andre, what's the best way to wait for the answer from the gui thread,
QEventLoop?
I personally believe that nested event loops are always evil.
In this case I'd completely stop the export, let the gui pop up
the dialog, and on confirmation re-initiate the export process
with a 'force' flag or such.

I don't know enough about this to know if this is a silly idea or not, but I'll mention it anyway.

The dialogs we are discussing are all of the frontend::Alert variety. Indeed, unless I am mistaken, those are the only dialogs we create from the core. Is there any way we could encapsulate the needed logic there?

Richard

Reply via email to