/* QAD - Qt ADvanced Ivan Pelipenko peri4ko@yandex.ru, Andrey Bychkov work.a.b@yandex.ru This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef QVARIANTEDIT_CUSTOM_H #define QVARIANTEDIT_CUSTOM_H #include #include #include #include "qad_widgets_export.h" class QVariantEdit; class QAD_WIDGETS_EXPORT QVariantEditorFactoryBase { friend class QVariantEdit; public: QVariantEditorFactoryBase() {} virtual QWidget * createEditor() = 0; private: }; class QAD_WIDGETS_EXPORT 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