https://bugs.kde.org/show_bug.cgi?id=423643

--- Comment #8 from Fabian Vogt <fab...@ritter-vogt.de> ---
(In reply to Friedrich W. H. Kossebau from comment #5)
> ...
> Just, some API which is e.g. tagged with Q_INVOKABLE does not use the full
> namespace name, but omits the Plasma namespace, like "ServiceJob
> *Service::startOperationCall(const QVariantMap &description, QObject
> *parent)". And as said in the referenced bug report, that name has to be
> explicitly additionally registered, to allow Qt the mapping to the actual
> type metadata.
> But see the current qRegisterMetaType<T>("name") as given above: they miss
> the "*" from the name. So they are registering the wrong incomplete name.
> And so e.g.
> ```
> qRegisterMetaType<Plasma::ServiceJob*>("ServiceJob");
> ```
> will not help Qt when it tries to match the type name "ServiceJob*" from the
> invokable above to a registered type in the metadata system.
I guess it should be either
qRegisterMetaType<Plasma::ServiceJob*>("ServiceJob*");
or
qRegisterMetaType<Plasma::ServiceJob>("ServiceJob");
?

The doc says:
> Warning: This function is useful only for registering an alias (typedef) for 
> every other use case Q_DECLARE_METATYPE and qMetaTypeId() should be used 
> instead.
So that seems like it could be used for this.

> ...
> This would be my sleepy analyis of the cause.
I got to the same conclusion at least.

(In reply to Friedrich W. H. Kossebau from comment #6)
> (In reply to Aleix Pol from comment #4)
> > Git commit ac6bff575f934bceab03abdabc6a5c841c5b1f5e by Aleix Pol.
> > Committed on 01/07/2020 at 01:47.
> > Pushed by apol into branch 'master'.
> > 
> > Use fully qualified identifiers for metaobject types
> > ...
> 
> I fear that would be only one incarnation where the no longer registered
> type is fixed, instead/additionally we might also want to make sure the
> unnamespaced pointer and non-pointer types are registered as they had been
> so far?
Yes, there might be users of this outside of plasma-framework as well.
Though I wasn't able to find any of those on lxr.kde.org or GitHub.

Technically this is an API break though.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to