On Wednesday, January 02, 2013 18:12:51 Jan Kundrát wrote:
> On Wednesday, 2 January 2013 17:42:53 CEST, Stephen Kelly wrote:
> > The fix is probably to include qsslsocket.h in the translation
> > unit where you
> > have that line.
> >
> > Of course it's a bug and an odd mistake that
> > Q_DECLARE_METATYPE(QList<QSslError>) is in qsslsocket.h instead of
> > qsslerror.h.
>
> Hi Stephen, thanks for your answer. Adding
> Q_DECLARE_METATYPE(QList<QSslError>) to my code fixed the problem as well
> (as suggested by Thiago on IRC). Looks like there will be some discussion
> on development@ about whether the assert is the right thing in there.

I think it's a better workaround to include the header.

> > Also you should just use
> >
> >  qRegisterMetaType<QList<QSslError> >()
> >
> > without the string.
>
> The 4.x docs [1] uses the variant with a string. Does your suggestion apply
> to Qt 4.x (4.6+ in my case, to be specific) as well?

Yes.

> Shall the docs be changed?

Probably. They might also be incomplete.

> Is there any harm in using the string in Qt5?

If you use the string you are at risk of typos. There were several such typos
and copy-pastos in the Qt codebase.

Apart from that, Marcs point about the version without the string being faster
is probably true:

 
http://qt.gitorious.org/qt/qtbase/commit/e9ecf1b420d8f0fc4393cbfdea2fe731409d83c6

Although I think it might also be necessary to introduce a guard to make sure
you don't call qRegisterMetaType multiple times, even with the same type and
the same string. Otherwise you might be adding duplicate entries to the
metatype database each time.

So unless you're deliberately creating a typedef registration (and even in
that case, be careful), omit the string and you don't have to think about it
anymore.

Thanks,

--
Stephen Kelly <[email protected]> | Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to