[Development] Header diff for QtGui

Thiago Macieira thiago.macieira at intel.com
Wed Jun 26 23:44:48 CEST 2013


One issue found:

On quarta-feira, 26 de junho de 2013 13.49.40, Thiago Macieira wrote:
>  class Q_GUI_EXPORT QAccessibleInterface
>  {
> +protected:
> +    virtual ~QAccessibleInterface();
> +
>  public:
> -    virtual ~QAccessibleInterface() {}

SC/BC BREAK

Change in protection level is not acceptable (MSVC and Sun CC mangle the 
protection level). The constructors are public, so it's possible to derive 
from this class.

The destructor should go back to public.

This is also an SC break, because it makes it impossible to delete a 
QAccessibleInterface.

The rest are comments:
>  class Q_GUI_EXPORT QAccessible
> -#ifndef qdoc
> -        :public QObject
> -#endif
>  {
> -    Q_OBJECT
> -    Q_ENUMS(Role Event State)
> +    Q_GADGET
> +    Q_ENUMS(Role Event)

Acceptable because QAccessible's only constructor is private. The change in 
class size and vtable will not affect anyone.

The change from Q_OBJECT to Q_GADGET means the virtual functions are gone now 
(qt_metacall, qt_metacast, metaObject), but no one could call them before 
either.

The tr() functions are gone too. That's the only question I have, because it 
was possible to call:
	QAccessible::tr("Hello");

Opinions?

> --- a/src/gui/kernel/qwindow.h
> +++ b/src/gui/kernel/qwindow.h
> @@ -261,10 +286,12 @@ public Q_SLOTS:
>      void setWidth(int arg);
>      void setHeight(int arg);
> 
> -    void setMinimumWidth(int w);
> -    void setMinimumHeight(int h);
> -    void setMaximumWidth(int w);
> -    void setMaximumHeight(int h);
> +    Q_REVISION(1) void setMinimumWidth(int w);
> +    Q_REVISION(1) void setMinimumHeight(int h);
> +    Q_REVISION(1) void setMaximumWidth(int w);
> +    Q_REVISION(1) void setMaximumHeight(int h);

The meta object system doesn't care about Q_REVISION. It will simply extract 
the information. So this is neither BIC nor SIC.

However, the information is relevant to QML. QML experts, please comment on 
whether the change above is safe.



-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130626/4afc63fe/attachment.sig>


More information about the Development mailing list