Skip to content
Snippets Groups Projects
models.h 1.28 KiB
Newer Older
#ifndef MODELS_H
#define MODELS_H

#include "channelmodel.h"
#include "loginmethodsmodel.h"
#include "messagemodel.h"
#include "usermodel.h"
Armin Felder's avatar
Armin Felder committed
#include "messagesearchresultsmodel.h"
#include "roomsearchresultsmodel.h"

class ChannelModel;
class MessagesModel;
Armin Felder's avatar
Armin Felder committed
class MessageSearchResultsModel;
class RoomSearchResultsModel;

class Models
{
public:
    Models() = delete;
    Models& operator=(const Models&) = delete;

    static UserModel* getUsersModel();
    static LoginMethodsModel* getLoginMethodsModel();
    static ChannelModel* getDirectChannelsModel();
    static ChannelModel* getPublicGroupsModel();
    static ChannelModel* getPrivateGroupsModel();
    static MessagesModel* getMessagesModel();
Armin Felder's avatar
Armin Felder committed
    static MessageSearchResultsModel *getMessagesSearchModel();
    static RoomSearchResultsModel *getRoomSearchModel();
    static void resetModels();
    static void init();

    ~Models();

private:
    static UserModel *mUserModel;
    static LoginMethodsModel *mLoginMethodsModel;
    static ChannelModel *mDirectChannelsModel;
    static ChannelModel *mPublicGroupsModel;
    static ChannelModel *mPrivateGroupsModel;
    static MessagesModel *mMessagesModel;
Armin Felder's avatar
Armin Felder committed
    static MessageSearchResultsModel *mMessagesSearchModel;
    static RoomSearchResultsModel *mRoomsSearchModel;
};

#endif // MODELS_H