| 1234567891011121314151617181920212223242526272829303132333435 |
- #ifndef MODELSREGISTER_H
- #define MODELSREGISTER_H
- #include <QMap>
- #include <QObject>
- class BaseModel;
- class ModelsRegister
- {
- public:
- static ModelsRegister *instance()
- {
- static ModelsRegister i;
- return &i;
- }
- static void registerModel(BaseModel *model);
- static BaseModel *model(const QString &name);
- template <class C>
- static C *get(const QString &name) {
- C *res = dynamic_cast<C *>(instance()->m_models.value(name));
- Q_ASSERT(res);
- return res;
- }
- private:
- ModelsRegister() = default;
- ~ModelsRegister() = default;
- QObject m_parent;
- QMap<QString, BaseModel *> m_models;
- };
- #endif // MODELSREGISTER_H
|