#ifndef QVARIANTEDIT_CUSTOM_H #define QVARIANTEDIT_CUSTOM_H #include #include #include class QVariantEdit; class QVariantEditorFactoryBase { friend class QVariantEdit; public: QVariantEditorFactoryBase() {} virtual QWidget * createEditor() = 0; private: }; class QVariantEditorFactories { public: static void registerEditorFactory(int meta_id, QVariantEditorFactoryBase * f); static void unregisterEditorFactory(int meta_id); static bool isRegisteredEditorFactory(int meta_id); static QVariantEditorFactoryBase * editorFactory(int meta_id); private: QVariantEditorFactories(); static QVariantEditorFactories * instance(); QMap factories; }; #endif // QVARIANTEDIT_CUSTOM_H