Test request: new navigation style.

Here's the place for discussion related to coding in FreeCAD, C++ or Python. Design, interfaces and structures.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Test request: new navigation style.

Post by DeepSOIC »

Hi!
I have just pushed my branch, where I had created a new navigation style.
It is called "Gesture Navigation Style". Yes, it was made for touchscreens, but it also has a brand new way of navigating with regular mouse. The plan is that the style should be usable with mouse just as well, so even if you have no touchscreen - I think you may like it.

Branch: touch2

Features:
* mouse navigation:
** hold LMB and drag to rotate the view (like Inventor, but it also selects!). In sketcher and other editing, hold Alt in addition to rotate.
** hold RMB and drag to pan
** scroll wheel to zoom
** hold RMB+LMB to tilt (New!)
mouse interaction
** LMB-click to select
** RMB-click for context menu
touchscreen navigation:
** one-finger drag to rotate the view (works through mouse events)
** two-finger drag to pan (buggy Qt :evil: ). Alternatively, tap-and-hold, then drag.
** pinch to zoom and pan (no Qt support on windows - works through my custom recognizer)
** two-finger rotate to tilt the view

I may have broken some stuff (but sketcher seems to work). It may fail to compile on linux (I have not tested). If it fails - please report, and we'll try to fix it together.
I think there will be a plenty of bugs!

Thanks in advance.

----
fixed bug: after a gesture, tapping empty space does not deselect.
added H key shortcut (hardcoded) to set camera focus.
cox
Posts: 971
Joined: Wed Nov 26, 2014 11:37 pm

Re: Test request: new navigation style.

Post by cox »

Is rotation center select implemented? (MMB?)

I miss it a lot in touchpad navigation.
Need help? Feel free to ask, but please read the guidelines first
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Test request: new navigation style.

Post by DeepSOIC »

cox wrote:Is rotation center select implemented? (MMB?)
No... but I can, probably.
EDIT: btw, thanks for mentioning it! I did not know it was implemented in other navig. styles, because I've been using touchpad navigation exclusively. I don't know how to trigger it with no MMB, which is what I really want to (my touchscreen notebook with pen has no middle mouse button). Maybe dedicate a key on keyboard... or maybe ditch tilting..
cox
Posts: 971
Joined: Wed Nov 26, 2014 11:37 pm

Re: Test request: new navigation style.

Post by cox »

DeepSOIC wrote:Maybe dedicate a key on keyboard... or maybe ditch tilting..
How about Alt LMB, no use the LMB while rotating i think.

Building your branch now to test:-)
Need help? Feel free to ask, but please read the guidelines first
cox
Posts: 971
Joined: Wed Nov 26, 2014 11:37 pm

Re: Test request: new navigation style.

Post by cox »

Build failed, am I missing something. I do not have a touchscreen.

Code: Select all

In file included from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:0:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:9:31: error: invalid use of incomplete type ‘class SoEvent’
 class SoGestureEvent : public SoEvent {
                               ^
In file included from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:6:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/Quarter/devices/InputDevice.h:40:7: error: forward declaration of ‘class SoEvent’
 class SoEvent;
       ^
In file included from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:0:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:10:30: error: ISO C++ forbids declaration of ‘SO_EVENT_ABSTRACT_HEADER’ with no type [-fpermissive]
     SO_EVENT_ABSTRACT_HEADER();
                              ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h: In static member function ‘static void SoGestureEvent::initClass()’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:13:52: error: expected primary-expression before ‘,’ token
         SO_EVENT_INIT_ABSTRACT_CLASS(SoGestureEvent, SoEvent);
                                                    ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:13:61: error: expected primary-expression before ‘)’ token
         SO_EVENT_INIT_ABSTRACT_CLASS(SoGestureEvent, SoEvent);
                                                             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:13:61: error: ‘SO_EVENT_INIT_ABSTRACT_CLASS’ was not declared in this scope
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h: At global scope:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:30:21: error: ISO C++ forbids declaration of ‘SO_EVENT_HEADER’ with no type [-fpermissive]
     SO_EVENT_HEADER();
                     ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:40:13: error: field ‘deltaOffset’ has incomplete type ‘SbVec2f’
     SbVec2f deltaOffset;
             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:41:13: error: field ‘totalOffset’ has incomplete type ‘SbVec2f’
     SbVec2f totalOffset;
             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h: In static member function ‘static void SoGesturePanEvent::initClass()’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:33:46: error: expected primary-expression before ‘,’ token
         SO_EVENT_INIT_CLASS(SoGesturePanEvent, SoGestureEvent);
                                              ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:33:62: error: expected primary-expression before ‘)’ token
         SO_EVENT_INIT_CLASS(SoGesturePanEvent, SoGestureEvent);
                                                              ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:33:62: error: ‘SO_EVENT_INIT_CLASS’ was not declared in this scope
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h: At global scope:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:45:21: error: ISO C++ forbids declaration of ‘SO_EVENT_HEADER’ with no type [-fpermissive]
     SO_EVENT_HEADER();
                     ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:55:13: error: field ‘startCenter’ has incomplete type ‘SbVec2f’
     SbVec2f startCenter;//in GL pixel coordinates (from bottom left corner of view area)
             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:56:13: error: field ‘curCenter’ has incomplete type ‘SbVec2f’
     SbVec2f curCenter;
             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:57:13: error: field ‘deltaCenter’ has incomplete type ‘SbVec2f’
     SbVec2f deltaCenter;
             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h: In static member function ‘static void SoGesturePinchEvent::initClass()’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:48:48: error: expected primary-expression before ‘,’ token
         SO_EVENT_INIT_CLASS(SoGesturePinchEvent, SoGestureEvent);
                                                ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:48:64: error: expected primary-expression before ‘)’ token
         SO_EVENT_INIT_CLASS(SoGesturePinchEvent, SoGestureEvent);
                                                                ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:48:64: error: ‘SO_EVENT_INIT_CLASS’ was not declared in this scope
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h: At global scope:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:66:21: error: ISO C++ forbids declaration of ‘SO_EVENT_HEADER’ with no type [-fpermissive]
     SO_EVENT_HEADER();
                     ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h: In static member function ‘static void SoGestureSwipeEvent::initClass()’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:69:48: error: expected primary-expression before ‘,’ token
         SO_EVENT_INIT_CLASS(SoGestureSwipeEvent, SoGestureEvent);
                                                ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:69:64: error: expected primary-expression before ‘)’ token
         SO_EVENT_INIT_CLASS(SoGestureSwipeEvent, SoGestureEvent);
                                                                ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:69:64: error: ‘SO_EVENT_INIT_CLASS’ was not declared in this scope
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: At global scope:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:5:41: error: expected constructor, destructor, or type conversion before ‘;’ token
 SO_EVENT_ABSTRACT_SOURCE(SoGestureEvent);
                                         ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In member function ‘SbBool SoGestureEvent::isSoGestureEvent(const SoEvent*) const’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:9:14: error: invalid use of incomplete type ‘const class SoEvent’
     return ev->isOfType(SoGestureEvent::getClassTypeId());
              ^
In file included from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:6:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/Quarter/devices/InputDevice.h:40:7: error: forward declaration of ‘const class SoEvent’
 class SoEvent;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:9:25: error: ‘getClassTypeId’ is not a member of ‘SoGestureEvent’
     return ev->isOfType(SoGestureEvent::getClassTypeId());
                         ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: At global scope:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:14:35: error: expected constructor, destructor, or type conversion before ‘;’ token
 SO_EVENT_SOURCE(SoGesturePanEvent);
                                   ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In constructor ‘SoGesturePanEvent::SoGesturePanEvent(QPanGesture*, QWidget*)’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:18:66: error: invalid use of incomplete type ‘class SbVec2f’
     totalOffset = SbVec2f(qpan->offset().x(), -qpan->offset().y());
                                                                  ^
In file included from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/Quarter/devices/InputDevice.h:37:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:6,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/Inventor/SbVec2s.h:38:7: error: forward declaration of ‘class SbVec2f’
 class SbVec2f;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:19:64: error: invalid use of incomplete type ‘class SbVec2f’
     deltaOffset = SbVec2f(qpan->delta().x(), -qpan->delta().y());
                                                                ^
In file included from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/Quarter/devices/InputDevice.h:37:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:6,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/Inventor/SbVec2s.h:38:7: error: forward declaration of ‘class SbVec2f’
 class SbVec2f;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:22:34: error: ‘QApplication’ has not been declared
     Qt::KeyboardModifiers mods = QApplication::keyboardModifiers();
                                  ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:23:11: error: ‘class SoGesturePanEvent’ has no member named ‘setAltDown’
     this->setAltDown(mods.testFlag(Qt::AltModifier));
           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:24:11: error: ‘class SoGesturePanEvent’ has no member named ‘setCtrlDown’
     this->setCtrlDown(mods.testFlag(Qt::ControlModifier));
           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:25:11: error: ‘class SoGesturePanEvent’ has no member named ‘setShiftDown’
     this->setShiftDown(mods.testFlag(Qt::ShiftModifier));
           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:26:11: error: ‘class SoGesturePanEvent’ has no member named ‘setTime’
     this->setTime(SbTime::getTimeOfDay());
           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:26:19: error: ‘SbTime’ has not been declared
     this->setTime(SbTime::getTimeOfDay());
                   ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In member function ‘SbBool SoGesturePanEvent::isSoGesturePanEvent(const SoEvent*) const’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:31:14: error: invalid use of incomplete type ‘const class SoEvent’
     return ev->isOfType(SoGesturePanEvent::getClassTypeId());
              ^
In file included from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:6:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/Quarter/devices/InputDevice.h:40:7: error: forward declaration of ‘const class SoEvent’
 class SoEvent;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:31:25: error: ‘getClassTypeId’ is not a member of ‘SoGesturePanEvent’
     return ev->isOfType(SoGesturePanEvent::getClassTypeId());
                         ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: At global scope:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:36:37: error: expected constructor, destructor, or type conversion before ‘;’ token
 SO_EVENT_SOURCE(SoGesturePinchEvent);
                                     ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In constructor ‘SoGesturePinchEvent::SoGesturePinchEvent(QPinchGesture*, QWidget*)’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:40:19: error: invalid use of incomplete type ‘class QWidget’
     int h = widget->height();
                   ^
In file included from /usr/include/qt4/QtGui/qgesture.h:45:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:5,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/qt4/QtCore/qobject.h:70:7: error: forward declaration of ‘class QWidget’
 class QWidget;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:41:42: error: invalid use of incomplete type ‘class QWidget’
     QPointF widgetCorner = QPointF(widget->mapToGlobal(QPoint(0,0)));
                                          ^
In file included from /usr/include/qt4/QtGui/qgesture.h:45:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:5,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/qt4/QtCore/qobject.h:70:7: error: forward declaration of ‘class QWidget’
 class QWidget;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:42:34: error: invalid use of incomplete type ‘class QWidget’
     qreal scaleToWidget = (widget->mapFromGlobal(QPoint(800,800))-widget->mapFromGlobal(QPoint(0,0))).x()/800;
                                  ^
In file included from /usr/include/qt4/QtGui/qgesture.h:45:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:5,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/qt4/QtCore/qobject.h:70:7: error: forward declaration of ‘class QWidget’
 class QWidget;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:42:73: error: invalid use of incomplete type ‘class QWidget’
     qreal scaleToWidget = (widget->mapFromGlobal(QPoint(800,800))-widget->mapFromGlobal(QPoint(0,0))).x()/800;
                                                                         ^
In file included from /usr/include/qt4/QtGui/qgesture.h:45:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:5,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/qt4/QtCore/qobject.h:70:7: error: forward declaration of ‘class QWidget’
 class QWidget;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:46:47: error: invalid use of incomplete type ‘class SbVec2f’
     startCenter = SbVec2f(pnt.x(), h - pnt.y());
                                               ^
In file included from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/Quarter/devices/InputDevice.h:37:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:6,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/Inventor/SbVec2s.h:38:7: error: forward declaration of ‘class SbVec2f’
 class SbVec2f;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:50:45: error: invalid use of incomplete type ‘class SbVec2f’
     curCenter = SbVec2f(pnt.x(), h - pnt.y());
                                             ^
In file included from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/Quarter/devices/InputDevice.h:37:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:6,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/Inventor/SbVec2s.h:38:7: error: forward declaration of ‘class SbVec2f’
 class SbVec2f;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:54:59: error: invalid use of incomplete type ‘class SbVec2f’
     deltaCenter = curCenter - SbVec2f(pnt.x(), h - pnt.y());
                                                           ^
In file included from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/Quarter/devices/InputDevice.h:37:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:6,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/Inventor/SbVec2s.h:38:7: error: forward declaration of ‘class SbVec2f’
 class SbVec2f;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:64:11: error: ‘class SoGesturePinchEvent’ has no member named ‘setPosition’
     this->setPosition(SbVec2s(curCenter));
           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:65:34: error: ‘QApplication’ has not been declared
     Qt::KeyboardModifiers mods = QApplication::keyboardModifiers();
                                  ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:66:11: error: ‘class SoGesturePinchEvent’ has no member named ‘setAltDown’
     this->setAltDown(mods.testFlag(Qt::AltModifier));
           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:67:11: error: ‘class SoGesturePinchEvent’ has no member named ‘setCtrlDown’
     this->setCtrlDown(mods.testFlag(Qt::ControlModifier));
           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:68:11: error: ‘class SoGesturePinchEvent’ has no member named ‘setShiftDown’
     this->setShiftDown(mods.testFlag(Qt::ShiftModifier));
           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:69:11: error: ‘class SoGesturePinchEvent’ has no member named ‘setTime’
     this->setTime(SbTime::getTimeOfDay());
           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:69:19: error: ‘SbTime’ has not been declared
     this->setTime(SbTime::getTimeOfDay());
                   ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In member function ‘SbBool SoGesturePinchEvent::isSoGesturePinchEvent(const SoEvent*) const’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:74:14: error: invalid use of incomplete type ‘const class SoEvent’
     return ev->isOfType(SoGesturePinchEvent::getClassTypeId());
              ^
In file included from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:6:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/Quarter/devices/InputDevice.h:40:7: error: forward declaration of ‘const class SoEvent’
 class SoEvent;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:74:25: error: ‘getClassTypeId’ is not a member of ‘SoGesturePinchEvent’
     return ev->isOfType(SoGesturePinchEvent::getClassTypeId());
                         ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: At global scope:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:79:37: error: expected constructor, destructor, or type conversion before ‘;’ token
 SO_EVENT_SOURCE(SoGestureSwipeEvent);
                                     ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In constructor ‘SoGestureSwipeEvent::SoGestureSwipeEvent(QSwipeGesture*, QWidget*)’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:109:34: error: ‘QApplication’ has not been declared
     Qt::KeyboardModifiers mods = QApplication::keyboardModifiers();
                                  ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:110:11: error: ‘class SoGestureSwipeEvent’ has no member named ‘setAltDown’
     this->setAltDown(mods.testFlag(Qt::AltModifier));
           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:111:11: error: ‘class SoGestureSwipeEvent’ has no member named ‘setCtrlDown’
     this->setCtrlDown(mods.testFlag(Qt::ControlModifier));
           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:112:11: error: ‘class SoGestureSwipeEvent’ has no member named ‘setShiftDown’
     this->setShiftDown(mods.testFlag(Qt::ShiftModifier));
           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:113:11: error: ‘class SoGestureSwipeEvent’ has no member named ‘setTime’
     this->setTime(SbTime::getTimeOfDay());
           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:113:19: error: ‘SbTime’ has not been declared
     this->setTime(SbTime::getTimeOfDay());
                   ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In member function ‘SbBool SoGestureSwipeEvent::isSoGestureSwipeEvent(const SoEvent*) const’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:118:14: error: invalid use of incomplete type ‘const class SoEvent’
     return ev->isOfType(SoGestureSwipeEvent::getClassTypeId());
              ^
In file included from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:6:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/Quarter/devices/InputDevice.h:40:7: error: forward declaration of ‘const class SoEvent’
 class SoEvent;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:118:25: error: ‘getClassTypeId’ is not a member of ‘SoGestureSwipeEvent’
     return ev->isOfType(SoGestureSwipeEvent::getClassTypeId());
                         ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In constructor ‘GesturesDevice::GesturesDevice(QWidget*)’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:126:9: error: ‘getClassTypeId’ is not a member of ‘SoGestureEvent’
     if (SoGestureEvent::getClassTypeId().isBad()){
         ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In member function ‘virtual const SoEvent* GesturesDevice::translateEvent(QEvent*)’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:139:14: error: invalid use of incomplete type ‘class QEvent’
     if (event->type() == QEvent::Gesture
              ^
In file included from /usr/include/qt4/QtGui/qgesture.h:45:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:5,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/qt4/QtCore/qobject.h:62:7: error: forward declaration of ‘class QEvent’
 class QEvent;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:139:26: error: incomplete type ‘QEvent’ used in nested name specifier
     if (event->type() == QEvent::Gesture
                          ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:140:21: error: invalid use of incomplete type ‘class QEvent’
             || event->type() == QEvent::GestureOverride) {
                     ^
In file included from /usr/include/qt4/QtGui/qgesture.h:45:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:5,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/qt4/QtCore/qobject.h:62:7: error: forward declaration of ‘class QEvent’
 class QEvent;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:140:33: error: incomplete type ‘QEvent’ used in nested name specifier
             || event->type() == QEvent::GestureOverride) {
                                 ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:9: error: ‘QGestureEvent’ was not declared in this scope
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
         ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:24: error: ‘gevent’ was not declared in this scope
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
                        ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:45: error: ‘QGestureEvent’ does not name a type
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
                                             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:58: error: expected ‘>’ before ‘*’ token
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
                                                          ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:58: error: expected ‘(’ before ‘*’ token
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:59: error: expected primary-expression before ‘>’ token
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
                                                           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:67: error: expected ‘)’ before ‘;’ token
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
                                                                   ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:146:59: error: cannot convert ‘SoGesturePinchEvent*’ to ‘const SoEvent*’ in return
             return new SoGesturePinchEvent(zg,this->widget);
                                                           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:152:57: error: cannot convert ‘SoGesturePanEvent*’ to ‘const SoEvent*’ in return
             return new SoGesturePanEvent(pg,this->widget);
                                                         ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:158:57: error: cannot convert ‘SoGesturePanEvent*’ to ‘const SoEvent*’ in return
             return new SoGesturePanEvent(pg,this->widget);
                                                         ^
src/Gui/CMakeFiles/FreeCADGui.dir/build.make:3844: recipe for target 'src/Gui/CMakeFiles/FreeCADGui.dir/SoTouchEvents.cpp.o' failed
make[2]: *** [src/Gui/CMakeFiles/FreeCADGui.dir/SoTouchEvents.cpp.o] Error 1
CMakeFiles/Makefile2:3960: recipe for target 'src/Gui/CMakeFiles/FreeCADGui.dir/all' failed
make[1]: *** [src/Gui/CMakeFiles/FreeCADGui.dir/all] Error 2
Makefile:116: recipe for target 'all' failed
make: *** [all] Error 2
Need help? Feel free to ask, but please read the guidelines first
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Test request: new navigation style.

Post by DeepSOIC »

I see, I think I misused #include precompiled. It should not fail to compile if you have no touchscreen, and the failure is not at windows-specific stuff...
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Test request: new navigation style.

Post by DeepSOIC »

please fetch and try again!
cox
Posts: 971
Joined: Wed Nov 26, 2014 11:37 pm

Re: Test request: new navigation style.

Post by cox »

Code: Select all

[ 13%] Building CXX object src/Gui/CMakeFiles/FreeCADGui.dir/SoTouchEvents.cpp.o
In file included from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:0:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:13:30: error: ISO C++ forbids declaration of ‘SO_EVENT_ABSTRACT_HEADER’ with no type [-fpermissive]
     SO_EVENT_ABSTRACT_HEADER();
                              ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h: In static member function ‘static void SoGestureEvent::initClass()’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:16:52: error: expected primary-expression before ‘,’ token
         SO_EVENT_INIT_ABSTRACT_CLASS(SoGestureEvent, SoEvent);
                                                    ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:16:61: error: expected primary-expression before ‘)’ token
         SO_EVENT_INIT_ABSTRACT_CLASS(SoGestureEvent, SoEvent);
                                                             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:16:61: error: ‘SO_EVENT_INIT_ABSTRACT_CLASS’ was not declared in this scope
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h: At global scope:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:43:13: error: field ‘deltaOffset’ has incomplete type ‘SbVec2f’
     SbVec2f deltaOffset;
             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:44:13: error: field ‘totalOffset’ has incomplete type ‘SbVec2f’
     SbVec2f totalOffset;
             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:58:13: error: field ‘startCenter’ has incomplete type ‘SbVec2f’
     SbVec2f startCenter;//in GL pixel coordinates (from bottom left corner of view area)
             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:59:13: error: field ‘curCenter’ has incomplete type ‘SbVec2f’
     SbVec2f curCenter;
             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:60:13: error: field ‘deltaCenter’ has incomplete type ‘SbVec2f’
     SbVec2f deltaCenter;
             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:5:41: error: expected constructor, destructor, or type conversion before ‘;’ token
 SO_EVENT_ABSTRACT_SOURCE(SoGestureEvent);
                                         ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In constructor ‘SoGesturePanEvent::SoGesturePanEvent(QPanGesture*, QWidget*)’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:18:66: error: invalid use of incomplete type ‘class SbVec2f’
     totalOffset = SbVec2f(qpan->offset().x(), -qpan->offset().y());
                                                                  ^
In file included from /usr/include/Inventor/events/SoEvent.h:28:0,
                 from /usr/include/Inventor/events/SoEvents.h:32,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:8,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/Inventor/SbVec2s.h:38:7: error: forward declaration of ‘class SbVec2f’
 class SbVec2f;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:19:64: error: invalid use of incomplete type ‘class SbVec2f’
     deltaOffset = SbVec2f(qpan->delta().x(), -qpan->delta().y());
                                                                ^
In file included from /usr/include/Inventor/events/SoEvent.h:28:0,
                 from /usr/include/Inventor/events/SoEvents.h:32,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:8,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/Inventor/SbVec2s.h:38:7: error: forward declaration of ‘class SbVec2f’
 class SbVec2f;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:22:34: error: incomplete type ‘QApplication’ used in nested name specifier
     Qt::KeyboardModifiers mods = QApplication::keyboardModifiers();
                                  ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In constructor ‘SoGesturePinchEvent::SoGesturePinchEvent(QPinchGesture*, QWidget*)’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:46:47: error: invalid use of incomplete type ‘class SbVec2f’
     startCenter = SbVec2f(pnt.x(), h - pnt.y());
                                               ^
In file included from /usr/include/Inventor/events/SoEvent.h:28:0,
                 from /usr/include/Inventor/events/SoEvents.h:32,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:8,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/Inventor/SbVec2s.h:38:7: error: forward declaration of ‘class SbVec2f’
 class SbVec2f;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:50:45: error: invalid use of incomplete type ‘class SbVec2f’
     curCenter = SbVec2f(pnt.x(), h - pnt.y());
                                             ^
In file included from /usr/include/Inventor/events/SoEvent.h:28:0,
                 from /usr/include/Inventor/events/SoEvents.h:32,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:8,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/Inventor/SbVec2s.h:38:7: error: forward declaration of ‘class SbVec2f’
 class SbVec2f;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:54:59: error: invalid use of incomplete type ‘class SbVec2f’
     deltaCenter = curCenter - SbVec2f(pnt.x(), h - pnt.y());
                                                           ^
In file included from /usr/include/Inventor/events/SoEvent.h:28:0,
                 from /usr/include/Inventor/events/SoEvents.h:32,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:8,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/Inventor/SbVec2s.h:38:7: error: forward declaration of ‘class SbVec2f’
 class SbVec2f;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:65:34: error: incomplete type ‘QApplication’ used in nested name specifier
     Qt::KeyboardModifiers mods = QApplication::keyboardModifiers();
                                  ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In constructor ‘SoGestureSwipeEvent::SoGestureSwipeEvent(QSwipeGesture*, QWidget*)’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:109:34: error: incomplete type ‘QApplication’ used in nested name specifier
     Qt::KeyboardModifiers mods = QApplication::keyboardModifiers();
                                  ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In member function ‘virtual const SoEvent* GesturesDevice::translateEvent(QEvent*)’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:139:14: error: invalid use of incomplete type ‘class QEvent’
     if (event->type() == QEvent::Gesture
              ^
In file included from /usr/include/qt4/QtGui/qwidget.h:47:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:6,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/qt4/QtCore/qobject.h:62:7: error: forward declaration of ‘class QEvent’
 class QEvent;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:139:26: error: incomplete type ‘QEvent’ used in nested name specifier
     if (event->type() == QEvent::Gesture
                          ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:140:21: error: invalid use of incomplete type ‘class QEvent’
             || event->type() == QEvent::GestureOverride) {
                     ^
In file included from /usr/include/qt4/QtGui/qwidget.h:47:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:6,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/qt4/QtCore/qobject.h:62:7: error: forward declaration of ‘class QEvent’
 class QEvent;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:140:33: error: incomplete type ‘QEvent’ used in nested name specifier
             || event->type() == QEvent::GestureOverride) {
                                 ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:9: error: ‘QGestureEvent’ was not declared in this scope
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
         ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:24: error: ‘gevent’ was not declared in this scope
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
                        ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:45: error: ‘QGestureEvent’ does not name a type
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
                                             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:58: error: expected ‘>’ before ‘*’ token
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
                                                          ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:58: error: expected ‘(’ before ‘*’ token
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:59: error: expected primary-expression before ‘>’ token
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
                                                           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:67: error: expected ‘)’ before ‘;’ token
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
                                                                   ^
src/Gui/CMakeFiles/FreeCADGui.dir/build.make:3844: recipe for target 'src/Gui/CMakeFiles/FreeCADGui.dir/SoTouchEvents.cpp.o' failed
make[2]: *** [src/Gui/CMakeFiles/FreeCADGui.dir/SoTouchEvents.cpp.o] Error 1
CMakeFiles/Makefile2:3960: recipe for target 'src/Gui/CMakeFiles/FreeCADGui.dir/all' failed
make[1]: *** [src/Gui/CMakeFiles/FreeCADGui.dir/all] Error 2
Makefile:116: recipe for target 'all' failed
make: *** [all] Error 2
Need help? Feel free to ask, but please read the guidelines first
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Test request: new navigation style.

Post by DeepSOIC »

Again!
This is the last one I can think of. If this doesn't work, I have no idea how to deal with it, I'll have to ask for help.
cox
Posts: 971
Joined: Wed Nov 26, 2014 11:37 pm

Re: Test request: new navigation style.

Post by cox »

Tried to use cmake with -fpermissive and got a bit different results. Do not even know if i should use it with cmake.
How to figure the type of SO_EVENT_ABSTRACT_HEADER and how to declere it.

Code: Select all

[ 26%] Building CXX object src/Gui/CMakeFiles/FreeCADGui.dir/SoTouchEvents.cpp.o                                                                       
In file included from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:0:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:11:30: error: ISO C++ forbids declaration of ‘SO_EVENT_ABSTRACT_HEADER’ with no type [-fpermissive]
     SO_EVENT_ABSTRACT_HEADER();
                              ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h: In static member function ‘static void SoGestureEvent::initClass()’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:14:52: error: expected primary-expression before ‘,’ token
         SO_EVENT_INIT_ABSTRACT_CLASS(SoGestureEvent, SoEvent);
                                                    ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:14:61: error: expected primary-expression before ‘)’ token
         SO_EVENT_INIT_ABSTRACT_CLASS(SoGestureEvent, SoEvent);
                                                             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:14:61: error: ‘SO_EVENT_INIT_ABSTRACT_CLASS’ was not declared in this scope
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: At global scope:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:5:41: error: expected constructor, destructor, or type conversion before ‘;’ token
 SO_EVENT_ABSTRACT_SOURCE(SoGestureEvent);
                                         ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In constructor ‘SoGesturePanEvent::SoGesturePanEvent(QPanGesture*, QWidget*)’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:22:34: error: incomplete type ‘QApplication’ used in nested name specifier
     Qt::KeyboardModifiers mods = QApplication::keyboardModifiers();
                                  ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In constructor ‘SoGesturePinchEvent::SoGesturePinchEvent(QPinchGesture*, QWidget*)’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:65:34: error: incomplete type ‘QApplication’ used in nested name specifier
     Qt::KeyboardModifiers mods = QApplication::keyboardModifiers();
                                  ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In constructor ‘SoGestureSwipeEvent::SoGestureSwipeEvent(QSwipeGesture*, QWidget*)’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:109:34: error: incomplete type ‘QApplication’ used in nested name specifier
     Qt::KeyboardModifiers mods = QApplication::keyboardModifiers();
                                  ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp: In member function ‘virtual const SoEvent* GesturesDevice::translateEvent(QEvent*)’:
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:139:14: error: invalid use of incomplete type ‘class QEvent’
     if (event->type() == QEvent::Gesture
              ^
In file included from /usr/include/qt4/QtGui/qwidget.h:47:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:4,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/qt4/QtCore/qobject.h:62:7: error: forward declaration of ‘class QEvent’
 class QEvent;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:139:26: error: incomplete type ‘QEvent’ used in nested name specifier
     if (event->type() == QEvent::Gesture
                          ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:140:21: error: invalid use of incomplete type ‘class QEvent’
             || event->type() == QEvent::GestureOverride) {
                     ^
In file included from /usr/include/qt4/QtGui/qwidget.h:47:0,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.h:4,
                 from /home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:2:
/usr/include/qt4/QtCore/qobject.h:62:7: error: forward declaration of ‘class QEvent’
 class QEvent;
       ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:140:33: error: incomplete type ‘QEvent’ used in nested name specifier
             || event->type() == QEvent::GestureOverride) {
                                 ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:9: error: ‘QGestureEvent’ was not declared in this scope
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
         ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:24: error: ‘gevent’ was not declared in this scope
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
                        ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:45: error: ‘QGestureEvent’ does not name a type
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
                                             ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:58: error: expected ‘>’ before ‘*’ token
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
                                                          ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:58: error: expected ‘(’ before ‘*’ token
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:59: error: expected primary-expression before ‘>’ token
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
                                                           ^
/home/kjetil/src/fce/FreeCAD-ellipse/src/Gui/SoTouchEvents.cpp:141:67: error: expected ‘)’ before ‘;’ token
         QGestureEvent* gevent = static_cast<QGestureEvent*>(event);
                                                                   ^
src/Gui/CMakeFiles/FreeCADGui.dir/build.make:3844: recipe for target 'src/Gui/CMakeFiles/FreeCADGui.dir/SoTouchEvents.cpp.o' failed
make[2]: *** [src/Gui/CMakeFiles/FreeCADGui.dir/SoTouchEvents.cpp.o] Error 1
CMakeFiles/Makefile2:3960: recipe for target 'src/Gui/CMakeFiles/FreeCADGui.dir/all' failed
make[1]: *** [src/Gui/CMakeFiles/FreeCADGui.dir/all] Error 2
Makefile:116: recipe for target 'all' failed
make: *** [all] Error 2
[kjetil@Arch FreeCAD-ellipse]$ git pull
Already up-to-date.
Need help? Feel free to ask, but please read the guidelines first
Post Reply