On Monday 19 September 2011 12:39:20 ext Иван Комиссаров wrote:
> > > > In the spirit of this discussion I'd like to point out that I need a
> > > > way to create QMimeType objects with all their properties set. Can we
> > > > add constructors to QMimeTypeData and QMimeType like this:
> > >
> > > why do you need this done in the constructor? this is, to me, really
> > > not good API. it's one of my pet peeves.
> >
> > I want this class to be immutable. Such a class needs a way to get its
> > properties initialized. Please explain why that is in your opinion a bad
> > API.
>
> Yes, QMimeType should be immutable; if user need to create type in code, he
> should use QMutableMimeType.
>
> So, as long as user shouldn't use QMimeType for creation of mime types, we
> can use protected constructor that takes QMimeTypeData instead.
I actually dislike the inheritance. It screams for a virtual destructor when
the API really doesn't need one.
How about a QMimeTypeBuilder, instead?
class QMimeTypeBuilder
{
public:
QMimeTypeBuilder();
void setType(...);
...
void setMagicMarkers(...);
QMimeType result() const { return QMimeType(d); }
private:
QExplicitlySharedDataPointer<QMimeTypeData> d; // Same as QMimeType
};
_______________________________________________
Qt5-feedback mailing list
[email protected]
http://lists.qt.nokia.com/mailman/listinfo/qt5-feedback