[Development] Qt 5.4.0 header diff: QtGui.diff

Knoll Lars Lars.Knoll at theqtcompany.com
Wed Nov 19 11:59:13 CET 2014


On 19/11/14 10:43, "Giuseppe D'Angelo" <giuseppe.dangelo at kdab.com> wrote:

>ABI break (changing a private static in a public exported class)?
>
>> --- a/src/gui/text/qfontdatabase.h
>> +++ b/src/gui/text/qfontdatabase.h
>> @@ -160,14 +152,14 @@ private:
>>      static void createDatabase();
>>      static void parseFontName(const QString &name, QString &foundry,
>>QString &family);
>>      static QString resolveFontFamilyAlias(const QString &family);
>> -    static QFontEngine *findFont(int script, const QFontPrivate *fp,
>>const QFontDef &request, bool multi = false, bool fallback = false);
>> +    static QFontEngine *findFont(int script, const QFontPrivate *fp,
>>const QFontDef &request, bool multi = false);
>>      static void load(const QFontPrivate *d, int script);
>>
>>      friend struct QFontDef;
>>      friend class QFontPrivate;
>>      friend class QFontDialog;
>>      friend class QFontDialogPrivate;
>> -    friend class QFontEngineMultiQPA;
>> +    friend class QFontEngineMultiBasicImpl;
>>
>>      QFontDatabasePrivate *d;
>>  };


This is ok afaict. The method is private, and only used from non inline
methods in QFontDatabase and QFontEngine.

>
>API and style mistake -- the new constructor should very likely be
>protected (useful only from subclasses?), but the private should be
>passed by reference (or "QOpenGLPaintDevice(0)" gives a cryptic error):
>
>>  class Q_GUI_EXPORT QOpenGLPaintDevice : public QPaintDevice
>> @@ -62,6 +53,7 @@ public:
>>      QOpenGLPaintDevice();
>>      explicit QOpenGLPaintDevice(const QSize &size);
>>      QOpenGLPaintDevice(int width, int height);
>> +    QOpenGLPaintDevice(QOpenGLPaintDevicePrivate *dd);
>>      virtual ~QOpenGLPaintDevice();
>>
>>      int devType() const { return QInternal::OpenGL; }

Yes, this should get fixed. I’ll prepare a patch.

Lars



More information about the Development mailing list