mrpt icon indicating copy to clipboard operation
mrpt copied to clipboard

Port CDisplayWindowPlots -> qwt

Open jlblancoc opened this issue 9 years ago • 7 comments

Much nicer & modern lib.

Port wxWidgets-based GUI -> qt + qwt

jlblancoc avatar Dec 18 '14 18:12 jlblancoc

Maybe @LisGein might be able to take a look at this.

jolting avatar May 30 '17 21:05 jolting

I want to note that 2D and 3D graphics are inherited in Qt from different classes. Also you can't use Q3DSurface and Q3DScatter in a single widget together. I encountered an this problem in my project.

LisGein avatar May 31 '17 10:05 LisGein

I want to note that 2D and 3D graphics are inherited in Qt from different classes.

Sure! This ticket refers to 2D plots in MRPT class mrpt::gui::CDisplayWindowPlots. Your GSoC project will use 3D canvas for most of its fields, although 2D plots might be useful too at some point.

@jolting 's point, I think, is that given that you're working in this area (which will include adding an OpenGL Qt wrapper for reuse in other Qt apps), you'll probably find relatively easy solving this issue too, naturally, with a lower priority than the main points in the map GUI project.

jlblancoc avatar May 31 '17 12:05 jlblancoc

What about license? QCustomPlot has GNU GPL...

LisGein avatar May 31 '17 14:05 LisGein

Good point Lis, didn't see it! :-(

Well, firstly: we want MRPT to remain with BSD license.

So, for sure, including QCustomPlot would propagate the GNU GPL license to the entire project (as far as I understand it), if:

  • We include its source code, or
  • We include its binary form.

That would apply to Windows binary releases (the sources could be left as to be downloaded by the interested user). But, I think that if we only build and link against system packages of this library, using dynamic linking, we could be "safe".

I have seen different opinions about this over the years. I even recall asking this very exact question to Richard Stallman during an interview in a visit to my town, and his answer could be summarized as: "yes, GNU GPL would apply in any case [static vs. dynamic linking]". But I'm not 100% satisfied with this idea because... then it would be impossible to release any BSD package (e.g. Debian, Ubuntu) as long as they link against one single GNU GPL library (!!).

Your thoughts? :-) (cc: @jolting )

jlblancoc avatar Jun 01 '17 14:06 jlblancoc

Technically, the 3-clause BSD license is compatible with the GPL. Conceivable it is possible to ship various MRPT components under different licenses, but this gets tricky. You shouldn't need to be a lawyer to use MRPT.

Alternatives:

  • QtChart In 5.6 Qt started supporting the QtChart Library. Unfortunately, It appears that is GPL3[1] which is strange because most of their other libraries are LGPL. Some of the comments on their blog talk about the issues people are having with the choice to license under GPL[2]. It seems to me this was a poor decision on their part. Also, I'd prefer not use it because 16.04 didn't ship with a recent enough version.

  • qwt I propose Qwt which is already packaged in 16.04, so using it (on Linux) will be much easier. It also has an LGPL license, which won't cause MRPT to inherit the GPL3 license.

[1] https://github.com/qt/qtcharts/blob/dev/LICENSE.GPL3 [2] http://blog.qt.io/blog/2016/01/18/qt-charts-2-1-0-release/

jolting avatar Jun 01 '17 18:06 jolting

👍 for qwt. Should do the job!

jlblancoc avatar Jun 02 '17 00:06 jlblancoc