-----Original Message-----
From: Interest <interest-bounces+mike.jackson=bluequartz....@qt-project.org> on 
behalf of Sze Howe Koh <szehowe....@gmail.com>
Date: Monday, May 21, 2018 at 10:17 AM
To: interest <interest@qt-project.org>
Subject: Re: [Interest] QDatastream, QMap, QImage serialization

    On 21 May 2018 at 17:08, Christian Gagneraud <chg...@gmail.com> wrote:
    > On 21 May 2018 at 20:12, Jean-Michaël Celerier
    > <jeanmichael.celer...@gmail.com> wrote:
    >>> Why is QImage even a GUI type? 99% of what I do with QImage is not for
    >>> GUI. I can understand that QPixmap is GUI, but to me QImage is i/o and
    >>> pixel/metadata manipulation (using scanline() where appropriate) . Yes,
    >>> occasionally I use a QPainter on one, but that does not beed to be 
bound to
    >>> a windowing system. A non-GUI raster painter would be sufficient.
    >>
    >> +1 (and also QColor ! plenty of command-line apps that work with colors 
:p)
    >
    > +1 (and also QPen and QBrush, they are (should be) just bundled 
properties)
    >
    > Once i wrote a graphical document format library (load, store and
    > models), that could have not depend on GUI at all if it didn't use
    > QColor, QPen, QBrush.
    
    I agree that QColor, QRgb, QRgba64, QGradient (and its subclasses),
    QGradientStop, and QPolygon are data types that are independent of
    GUIs, so they can be simply moved out of the Qt GUI module if desired.
    
    However, other classes can't be cleanly separated from Qt GUI (at
    least without significant re-design) because:
    * QPixmap is tied to system graphics resources

I agree as that seems like a reasonable abstraction.

    * QPaintDevice has the concept of "physical DPI" and "logical DPI"
    which are GUI-related.

Why can't QPaintDevice be more of a low level or a "Device" independent kind of 
class? I can write a class that has 2 properties of LogicalDPI and PhysicalDPI. 
My implementation it would be up to the user to set those. If I select a 
different implementation based off a "real" physical system then those values 
are retrieved from the system.
    
    * QPainter depends on QPaintEngine which depends on QPaintDevice

See above.

    * QPen depends on QBrush which depends on QPixmap
    * QPen and QBrush are useless without QPainter
Maybe, maybe not.
    * QImage inherits QPaintDevice
Don't? I just went through a major restructuring of our plugin architecture 
because developers were using QImage to load images (How dare they...) but the 
app crashed when run through a command line because a GUI was not available. I 
understand this is a design decision BUT libTiff sure doesn't need a windowing 
system to load an image.

    * QRegion depends on QBitmap which inherits QPixmap
    
    
    Regards,
    Sze-Howe

Best
Mike Jackson
    


_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to