Re: [LyX/master] Install a new compressor

2018-02-03 Thread Jürgen Spitzmüller
Am Freitag, den 02.02.2018, 22:55 -0500 schrieb Scott Kostyshak:
> > Yes, you need Jürgen's fix.
> 
> OK.

Done.

Jürgen

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


Re: [LyX/master] Install a new compressor

2018-02-02 Thread Guillaume MM

Le 01/02/2018 à 22:23, Scott Kostyshak a écrit :

On Thu, Feb 01, 2018 at 07:19:03PM +, Guillaume MM wrote:

Le 01/02/2018 à 18:21, Scott Kostyshak a écrit :

On Thu, Feb 01, 2018 at 02:00:43PM +, Jürgen Spitzmüller wrote:

Am Donnerstag, den 01.02.2018, 11:40 +0100 schrieb Jürgen Spitzmüller:

Am Donnerstag, den 01.02.2018, 11:22 +0100 schrieb Jean-Marc
Lasgouttes:

This makes much sense. You could probably move the new line to the
other
GuiWorkArea constructor...

Yes, this seems to work as well.

I have now pushed this fix to master.

Thanks for the fix, Jürgen. Let's double-check with Guillaume and port
to 2.3.x. Guillaume does this patch make sense to you?

Scott


Dear Scott, this looks good to me.

Thanks for taking a look.


I would not have proposed it for 2.3,

I'm pretty sure I know what you mean but I want to make 100% sure:

You mean the new compressor in the first place (i.e. commit 789617b8),
right? Conditional on us keeping that commit for 2.3.0, you do agree
that it makes sense to backport the follow-up 5ce36019, right?


Yes, you need Jürgen's fix.


The new compressor is in 2.3.0rc2. If we do not receive any other
reports that seem linked to it, do you agree that we should keep the
compressor for 2.3.0? Or do you have reason to think there is a
significant chance of a nasty bug that we might not encounter while
testing that could be serious?
The source of uncertainty is that it changes the behaviour on all 
platforms in a non-specific way. Just make sure it is well tested on all 
platforms. To test it, put the system in heavy load and check that LyX 
behaves nicely when overwhelmed with keyboard input, not necessarily 
with autorepeat.


Thanks,
Guillaume



Thanks,

Scott





Re: [LyX/master] Install a new compressor

2018-02-01 Thread Jürgen Spitzmüller
Am Donnerstag, den 01.02.2018, 20:19 +0100 schrieb Guillaume MM:
> I would not have proposed it for 2.3, 

Note that we had to act, since our old pseudo key compressor code broke
completely with Qt 5.10.

Jürgen

> 
> Guillaume
> 

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


Re: [LyX/master] Install a new compressor

2018-02-01 Thread Scott Kostyshak
On Thu, Feb 01, 2018 at 07:19:03PM +, Guillaume MM wrote:
> Le 01/02/2018 à 18:21, Scott Kostyshak a écrit :
> > On Thu, Feb 01, 2018 at 02:00:43PM +, Jürgen Spitzmüller wrote:
> > > Am Donnerstag, den 01.02.2018, 11:40 +0100 schrieb Jürgen Spitzmüller:
> > > > Am Donnerstag, den 01.02.2018, 11:22 +0100 schrieb Jean-Marc
> > > > Lasgouttes:
> > > > > This makes much sense. You could probably move the new line to the
> > > > > other
> > > > > GuiWorkArea constructor...
> > > > Yes, this seems to work as well.
> > > I have now pushed this fix to master.
> > Thanks for the fix, Jürgen. Let's double-check with Guillaume and port
> > to 2.3.x. Guillaume does this patch make sense to you?
> > 
> > Scott
> 
> 
> Dear Scott, this looks good to me.

Thanks for taking a look.

> I would not have proposed it for 2.3,

I'm pretty sure I know what you mean but I want to make 100% sure:

You mean the new compressor in the first place (i.e. commit 789617b8),
right? Conditional on us keeping that commit for 2.3.0, you do agree
that it makes sense to backport the follow-up 5ce36019, right?

The new compressor is in 2.3.0rc2. If we do not receive any other
reports that seem linked to it, do you agree that we should keep the
compressor for 2.3.0? Or do you have reason to think there is a
significant chance of a nasty bug that we might not encounter while
testing that could be serious?

Thanks,

Scott


signature.asc
Description: PGP signature


Re: [LyX/master] Install a new compressor

2018-02-01 Thread Guillaume MM

Le 01/02/2018 à 18:21, Scott Kostyshak a écrit :

On Thu, Feb 01, 2018 at 02:00:43PM +, Jürgen Spitzmüller wrote:

Am Donnerstag, den 01.02.2018, 11:40 +0100 schrieb Jürgen Spitzmüller:

Am Donnerstag, den 01.02.2018, 11:22 +0100 schrieb Jean-Marc
Lasgouttes:

This makes much sense. You could probably move the new line to the
other
GuiWorkArea constructor...

Yes, this seems to work as well.

I have now pushed this fix to master.

Thanks for the fix, Jürgen. Let's double-check with Guillaume and port
to 2.3.x. Guillaume does this patch make sense to you?

Scott



Dear Scott, this looks good to me. I would not have proposed it for 2.3, 
but thank you for the live test, this is much appreciated.


Guillaume



Re: [LyX/master] Install a new compressor

2018-02-01 Thread Scott Kostyshak
On Thu, Feb 01, 2018 at 02:00:43PM +, Jürgen Spitzmüller wrote:
> Am Donnerstag, den 01.02.2018, 11:40 +0100 schrieb Jürgen Spitzmüller:
> > Am Donnerstag, den 01.02.2018, 11:22 +0100 schrieb Jean-Marc
> > Lasgouttes:
> > > This makes much sense. You could probably move the new line to the
> > > other 
> > > GuiWorkArea constructor...
> > 
> > Yes, this seems to work as well.
> 
> I have now pushed this fix to master.

Thanks for the fix, Jürgen. Let's double-check with Guillaume and port
to 2.3.x. Guillaume does this patch make sense to you?

Scott


signature.asc
Description: PGP signature


Re: [LyX/master] Install a new compressor

2018-02-01 Thread Jürgen Spitzmüller
Am Donnerstag, den 01.02.2018, 11:22 +0100 schrieb Jean-Marc
Lasgouttes:
> This makes much sense. You could probably move the new line to the
> other 
> GuiWorkArea constructor...

Yes, this seems to work as well.

> Some more things seem weird in this code (like the w argument to the 
> EmbeddedWorkArea constructor), but it is not the right time to do 
> dangerous changes to this code :)

I agree.

Jürgen

> JMarc
> 

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


Re: [LyX/master] Install a new compressor

2018-02-01 Thread Jean-Marc Lasgouttes

Le 01/02/2018 à 10:50, Jürgen Spitzmüller a écrit :

The attached patch fixes it for me. But since this is not my code, I am
not that confident it is the correct fix.


This makes much sense. You could probably move the new line to the other 
GuiWorkArea constructor...


Some more things seem weird in this code (like the w argument to the 
EmbeddedWorkArea constructor), but it is not the right time to do 
dangerous changes to this code :)


JMarc



Re: [LyX/master] Install a new compressor

2018-02-01 Thread Kornel Benko
Am Donnerstag, 1. Februar 2018 10:50:42 CET schrieb Jürgen Spitzmüller 
:
> Am Mittwoch, den 31.01.2018, 22:12 -0500 schrieb Scott Kostyshak:
> > git bisect suggests this caused the issue reported on lyx-users [1].
> > 
> > To reproduce:
> > 
> > 1. Open LyX
> > 2. Start a new document
> > 3. Go to Edit > Find & Replace (Advanced)
> > 4. Try to type something in the "Find" text area.
> > 
> > During step 4, I can't type anything.
> 
> The attached patch fixes it for me. But since this is not my code, I am
> not that confident it is the correct fix.
> 
> Jürgen

Cures it for me too.

Kornel



Re: [LyX/master] Install a new compressor

2018-02-01 Thread Jürgen Spitzmüller
Am Mittwoch, den 31.01.2018, 22:12 -0500 schrieb Scott Kostyshak:
> git bisect suggests this caused the issue reported on lyx-users [1].
> 
> To reproduce:
> 
> 1. Open LyX
> 2. Start a new document
> 3. Go to Edit > Find & Replace (Advanced)
> 4. Try to type something in the "Find" text area.
> 
> During step 4, I can't type anything.

The attached patch fixes it for me. But since this is not my code, I am
not that confident it is the correct fix.

Jürgendiff --git a/src/frontends/qt4/GuiWorkArea.cpp b/src/frontends/qt4/GuiWorkArea.cpp
index ff6073e0db..3b7dc6c6b0 100644
--- a/src/frontends/qt4/GuiWorkArea.cpp
+++ b/src/frontends/qt4/GuiWorkArea.cpp
@@ -1404,6 +1404,7 @@ GuiView & GuiWorkArea::view()
 
 EmbeddedWorkArea::EmbeddedWorkArea(QWidget * w): GuiWorkArea(w)
 {
+	new CompressorProxy(this); // not a leak
 	support::TempFile tempfile("embedded.internal");
 	tempfile.setAutoRemove(false);
 	buffer_ = theBufferList().newInternalBuffer(tempfile.name().absFileName());


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


Re: [LyX/master] Install a new compressor

2018-01-31 Thread Scott Kostyshak
On Fri, Jan 12, 2018 at 10:03:54AM +, Juergen Spitzmueller wrote:
> commit 43e4b8073445d147be353013e3a7e081e11653ba
> Author: Guillaume MM 
> Date:   Fri Jan 12 10:58:31 2018 +0100
> 
> Install a new compressor
> 
> A brand new event compressor based on Kuba Ober's cleverly simple
> solution: .
> 
> Fix #9362, #9461, #9933: Lyx suddenly gets keyboard keys wrong, and
> deadlocks
> 
> Fix #9790: LyX should perform key event compression (for improving the
> remote X connections one would also need to implement
> Qt::WA_KeyCompression)
> 
> Fix #10516: slowness on repeated arrow keys with IBus and Qt5
> 
> Patch pulled from
> https://github.com/gadmm/lyx-unstable/commit/bf5a1efb0db5bfc2b
> 
> Signed-off-by: Juergen Spitzmueller 

git bisect suggests this caused the issue reported on lyx-users [1].

To reproduce:

1. Open LyX
2. Start a new document
3. Go to Edit > Find & Replace (Advanced)
4. Try to type something in the "Find" text area.

During step 4, I can't type anything.

Scott


[1]
https://www.mail-archive.com/search?l=mid=52ce9a1e-7205-be59-8c78-570918be1e1a%40jps.net


signature.asc
Description: PGP signature


Re: [LyX/master] Install a new compressor

2018-01-12 Thread Scott Kostyshak
On Fri, Jan 12, 2018 at 10:03:54AM +, Juergen Spitzmueller wrote:
> commit 43e4b8073445d147be353013e3a7e081e11653ba
> Author: Guillaume MM 
> Date:   Fri Jan 12 10:58:31 2018 +0100
> 
> Install a new compressor
> 
> A brand new event compressor based on Kuba Ober's cleverly simple
> solution: .
> 
> Fix #9362, #9461, #9933: Lyx suddenly gets keyboard keys wrong, and
> deadlocks
> 
> Fix #9790: LyX should perform key event compression (for improving the
> remote X connections one would also need to implement
> Qt::WA_KeyCompression)
> 
> Fix #10516: slowness on repeated arrow keys with IBus and Qt5
> 
> Patch pulled from
> https://github.com/gadmm/lyx-unstable/commit/bf5a1efb0db5bfc2b
> 
> Signed-off-by: Juergen Spitzmueller 
> ---

I've been testing recent master and scrolling (mostly just holding down
 and ) seems to be very smooth, and noticeably better
compared to master as of one week ago!

The only place where the cursor gets slightly hung up (e.g. 0.1 seconds)
is the first time that it enters a math inset. This only happens the
first time, i.e. I can't reproduce unless I restart LyX. This is not a
regression (that I know of), I just mention it here.

Scott


signature.asc
Description: PGP signature


Re: [LyX/master] Install a new compressor

2018-01-12 Thread Jürgen Spitzmüller
Am Freitag, den 12.01.2018, 11:49 +0100 schrieb Jean-Marc Lasgouttes:
> This breaks compilation here with Qt4 (Qt5 is OK). 

Fixed.

Jürgen

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


Re: [LyX/master] Install a new compressor

2018-01-12 Thread Jürgen Spitzmüller
Am Freitag, den 12.01.2018, 12:17 +0100 schrieb Jean-Marc Lasgouttes:
> Yes, but the fact that the code was supposed to be portable may hint
> to 
> a simpler solution. Unfortunately, I understand nothing about this 
> signal/slot stuff.

The problem seems to be only that a qt5-only signal-slot-syntax was
used. I have a fix in the pipe (I'll test on both qt versions before I
compile).

Jürgen

> 
> JMarc

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


Re: [LyX/master] Install a new compressor

2018-01-12 Thread Jean-Marc Lasgouttes

Le 12/01/2018 à 11:59, Jürgen Spitzmüller a écrit :

Am Freitag, den 12.01.2018, 11:49 +0100 schrieb Jean-Marc Lasgouttes:

This breaks compilation here with Qt4 (Qt5 is OK). I am not sure what
we
are supposed to do, but the original code was supposed to be portable
to
Qt5.


I see. We need to do something, however, the old code does not work
anymore.

An easy solution is to re-insert the old code for QT4 and condition the
new one for Qt5.


Yes, but the fact that the code was supposed to be portable may hint to 
a simpler solution. Unfortunately, I understand nothing about this 
signal/slot stuff.


JMarc


Re: [LyX/master] Install a new compressor

2018-01-12 Thread Jürgen Spitzmüller
Am Freitag, den 12.01.2018, 11:49 +0100 schrieb Jean-Marc Lasgouttes:
> This breaks compilation here with Qt4 (Qt5 is OK). I am not sure what
> we 
> are supposed to do, but the original code was supposed to be portable
> to 
> Qt5.

I see. We need to do something, however, the old code does not work
anymore.

An easy solution is to re-insert the old code for QT4 and condition the
new one for Qt5.

> Also, I would appreciate an explanation for the following line,
> which 
> feels  strange to me:
> 
> +++ b/src/frontends/qt4/GuiWorkArea.cpp
> @@ -276,6 +276,7 @@ GuiWorkArea::GuiWorkArea(QWidget * /* w */)
>   GuiWorkArea::GuiWorkArea(Buffer & buffer, GuiView & gv)
>   : d(new Private(this))
>   {
> +   new CompressorProxy(this); // not a leak

I hope Guillaume will jump in.

Jürgen

> 
> 
> JMarc
> 
> In file included from 
> ../../../../master/src/frontends/qt4/GuiWorkArea.cpp:14:0:
> ../../../../master/src/frontends/qt4/GuiWorkArea.h: In constructor 
> ‘lyx::frontend::CompressorProxy::CompressorProxy(lyx::frontend::GuiWo
> rkArea*)’:
> ../../../../master/src/frontends/qt4/GuiWorkArea.h:102:7: error:
> ‘void 
> lyx::frontend::GuiWorkArea::compressKeySym(lyx::KeySymbol, 
> lyx::KeyModifier, bool)’ is protected
>void compressKeySym(KeySymbol sym, KeyModifier mod, bool
> isAutoRepeat);
> ^
> ../../../../master/src/frontends/qt4/GuiWorkArea.cpp:1042:28: error: 
> within this context
>connect(wa, ::compressKeySym, this,
> ::slot,
>  ^
> ../../../../master/src/frontends/qt4/GuiWorkArea.cpp:1043:30: error:
> no 
> matching function for call to 
> ‘lyx::frontend::CompressorProxy::connect(lyx::frontend::GuiWorkArea*&
> , 
> void (lyx::frontend::GuiWorkArea::*)(lyx::KeySymbol,
> lyx::KeyModifier, 
> bool), lyx::frontend::CompressorProxy*, void 
> (lyx::frontend::CompressorProxy::*)(lyx::KeySymbol,
> lyx::KeyModifier, 
> bool), Qt::ConnectionType)’
>Qt::QueuedConnection);
>^
> In file included from /usr/include/qt4/QtCore/qiodevice.h:46:0,
>   from /usr/include/qt4/QtCore/qdatastream.h:46,
>   from /usr/include/qt4/QtCore/qmetatype.h:49,
>   from /usr/include/qt4/QtCore/qvariant.h:48,
>   from /usr/include/qt4/QtCore/QVariant:1,
>   from ./ui_WorkAreaUi.h:12,
>   from 
> ../../../../master/src/frontends/qt4/GuiWorkArea.h:16,
>   from 
> ../../../../master/src/frontends/qt4/GuiWorkArea.cpp:14:
> /usr/include/qt4/QtCore/qobject.h:204:17: note: candidate: static
> bool 
> QObject::connect(const QObject*, const char*, const QObject*, const 
> char*, Qt::ConnectionType)
>   static bool connect(const QObject *sender, const char *signal,
>   ^
> /usr/include/qt4/QtCore/qobject.h:204:17: note:   no known
> conversion 
> for argument 2 from ‘void 
> (lyx::frontend::GuiWorkArea::*)(lyx::KeySymbol, lyx::KeyModifier,
> bool)’ 
> to ‘const char*’
> /usr/include/qt4/QtCore/qobject.h:217:17: note: candidate: static
> bool 
> QObject::connect(const QObject*, const QMetaMethod&, const QObject*, 
> const QMetaMethod&, Qt::ConnectionType)
>   static bool connect(const QObject *sender, const QMetaMethod
> ,
>   ^
> /usr/include/qt4/QtCore/qobject.h:217:17: note:   no known
> conversion 
> for argument 2 from ‘void 
> (lyx::frontend::GuiWorkArea::*)(lyx::KeySymbol, lyx::KeyModifier,
> bool)’ 
> to ‘const QMetaMethod&’
> /usr/include/qt4/QtCore/qobject.h:337:13: note: candidate: bool 
> QObject::connect(const QObject*, const char*, const char*, 
> Qt::ConnectionType) const
>   inline bool QObject::connect(const QObject *asender, const char
> *asignal,
>   ^
> /usr/include/qt4/QtCore/qobject.h:337:13: note:   candidate expects
> 4 
> arguments, 5 provided
> ../../../../master/src/frontends/qt4/GuiWorkArea.cpp:1044:73: error:
> no 
> matching function for call to 
> ‘lyx::frontend::CompressorProxy::connect(lyx::frontend::CompressorPro
> xy*, 
> void (lyx::frontend::CompressorProxy::*)(lyx::KeySymbol, 
> lyx::KeyModifier), lyx::frontend::GuiWorkArea*&, void 
> (lyx::frontend::GuiWorkArea::*)(const lyx::KeySymbol&,
> lyx::KeyModifier))’
>connect(this, ::signal, wa,
> ::processKeySym);
>  
>  ^
> In file included from /usr/include/qt4/QtCore/qiodevice.h:46:0,
>   from /usr/include/qt4/QtCore/qdatastream.h:46,
>   from /usr/include/qt4/QtCore/qmetatype.h:49,
>   from /usr/include/qt4/QtCore/qvariant.h:48,
>   from /usr/include/qt4/QtCore/QVariant:1,
>   from ./ui_WorkAreaUi.h:12,
>   from 
> ../../../../master/src/frontends/qt4/GuiWorkArea.h:16,
>   from 
> ../../../../master/src/frontends/qt4/GuiWorkArea.cpp:14:
> /usr/include/qt4/QtCore/qobject.h:204:17: note: candidate: static
> bool 
> 

Re: [LyX/master] Install a new compressor

2018-01-12 Thread Jean-Marc Lasgouttes

Le 12/01/2018 à 11:03, Juergen Spitzmueller a écrit :

commit 43e4b8073445d147be353013e3a7e081e11653ba
Author: Guillaume MM 
Date:   Fri Jan 12 10:58:31 2018 +0100

 Install a new compressor
 
 A brand new event compressor based on Kuba Ober's cleverly simple

 solution: .


This breaks compilation here with Qt4 (Qt5 is OK). I am not sure what we 
are supposed to do, but the original code was supposed to be portable to 
Qt5.


Also, I would appreciate an explanation for the following line, which 
feels  strange to me:


+++ b/src/frontends/qt4/GuiWorkArea.cpp
@@ -276,6 +276,7 @@ GuiWorkArea::GuiWorkArea(QWidget * /* w */)
 GuiWorkArea::GuiWorkArea(Buffer & buffer, GuiView & gv)
 : d(new Private(this))
 {
+   new CompressorProxy(this); // not a leak


JMarc

In file included from 
../../../../master/src/frontends/qt4/GuiWorkArea.cpp:14:0:
../../../../master/src/frontends/qt4/GuiWorkArea.h: In constructor 
‘lyx::frontend::CompressorProxy::CompressorProxy(lyx::frontend::GuiWorkArea*)’:
../../../../master/src/frontends/qt4/GuiWorkArea.h:102:7: error: ‘void 
lyx::frontend::GuiWorkArea::compressKeySym(lyx::KeySymbol, 
lyx::KeyModifier, bool)’ is protected

  void compressKeySym(KeySymbol sym, KeyModifier mod, bool isAutoRepeat);
   ^
../../../../master/src/frontends/qt4/GuiWorkArea.cpp:1042:28: error: 
within this context

  connect(wa, ::compressKeySym, this, ::slot,
^
../../../../master/src/frontends/qt4/GuiWorkArea.cpp:1043:30: error: no 
matching function for call to 
‘lyx::frontend::CompressorProxy::connect(lyx::frontend::GuiWorkArea*&, 
void (lyx::frontend::GuiWorkArea::*)(lyx::KeySymbol, lyx::KeyModifier, 
bool), lyx::frontend::CompressorProxy*, void 
(lyx::frontend::CompressorProxy::*)(lyx::KeySymbol, lyx::KeyModifier, 
bool), Qt::ConnectionType)’

  Qt::QueuedConnection);
  ^
In file included from /usr/include/qt4/QtCore/qiodevice.h:46:0,
 from /usr/include/qt4/QtCore/qdatastream.h:46,
 from /usr/include/qt4/QtCore/qmetatype.h:49,
 from /usr/include/qt4/QtCore/qvariant.h:48,
 from /usr/include/qt4/QtCore/QVariant:1,
 from ./ui_WorkAreaUi.h:12,
 from 
../../../../master/src/frontends/qt4/GuiWorkArea.h:16,
 from 
../../../../master/src/frontends/qt4/GuiWorkArea.cpp:14:
/usr/include/qt4/QtCore/qobject.h:204:17: note: candidate: static bool 
QObject::connect(const QObject*, const char*, const QObject*, const 
char*, Qt::ConnectionType)

 static bool connect(const QObject *sender, const char *signal,
 ^
/usr/include/qt4/QtCore/qobject.h:204:17: note:   no known conversion 
for argument 2 from ‘void 
(lyx::frontend::GuiWorkArea::*)(lyx::KeySymbol, lyx::KeyModifier, bool)’ 
to ‘const char*’
/usr/include/qt4/QtCore/qobject.h:217:17: note: candidate: static bool 
QObject::connect(const QObject*, const QMetaMethod&, const QObject*, 
const QMetaMethod&, Qt::ConnectionType)

 static bool connect(const QObject *sender, const QMetaMethod ,
 ^
/usr/include/qt4/QtCore/qobject.h:217:17: note:   no known conversion 
for argument 2 from ‘void 
(lyx::frontend::GuiWorkArea::*)(lyx::KeySymbol, lyx::KeyModifier, bool)’ 
to ‘const QMetaMethod&’
/usr/include/qt4/QtCore/qobject.h:337:13: note: candidate: bool 
QObject::connect(const QObject*, const char*, const char*, 
Qt::ConnectionType) const

 inline bool QObject::connect(const QObject *asender, const char *asignal,
 ^
/usr/include/qt4/QtCore/qobject.h:337:13: note:   candidate expects 4 
arguments, 5 provided
../../../../master/src/frontends/qt4/GuiWorkArea.cpp:1044:73: error: no 
matching function for call to 
‘lyx::frontend::CompressorProxy::connect(lyx::frontend::CompressorProxy*, 
void (lyx::frontend::CompressorProxy::*)(lyx::KeySymbol, 
lyx::KeyModifier), lyx::frontend::GuiWorkArea*&, void 
(lyx::frontend::GuiWorkArea::*)(const lyx::KeySymbol&, lyx::KeyModifier))’

  connect(this, ::signal, wa, ::processKeySym);
 ^
In file included from /usr/include/qt4/QtCore/qiodevice.h:46:0,
 from /usr/include/qt4/QtCore/qdatastream.h:46,
 from /usr/include/qt4/QtCore/qmetatype.h:49,
 from /usr/include/qt4/QtCore/qvariant.h:48,
 from /usr/include/qt4/QtCore/QVariant:1,
 from ./ui_WorkAreaUi.h:12,
 from 
../../../../master/src/frontends/qt4/GuiWorkArea.h:16,
 from 
../../../../master/src/frontends/qt4/GuiWorkArea.cpp:14:
/usr/include/qt4/QtCore/qobject.h:204:17: note: candidate: static bool 
QObject::connect(const QObject*, const char*, const QObject*, const 
char*, Qt::ConnectionType)

 static bool connect(const QObject *sender, const char *signal,
 ^