#include "models.h" UserModel *Models::mUserModel = nullptr; LoginMethodsModel *Models::mLoginMethodsModel = nullptr; ChannelModel *Models::mDirectChannelsModel = nullptr; ChannelModel *Models::mPublicGroupsModel = nullptr; ChannelModel *Models::mPrivateGroupsModel = nullptr; MessagesModel *Models::mMessagesModel = nullptr; MessageSearchResultsModel *Models::mMessagesSearchModel = nullptr; RoomSearchResultsModel *Models::mRoomsSearchModel = nullptr; EmojisModel *Models::mEmojisModel = nullptr; UserModel *Models::getUsersModel() { return mUserModel; } LoginMethodsModel *Models::getLoginMethodsModel() { return mLoginMethodsModel; } ChannelModel *Models::getDirectChannelsModel() { return mDirectChannelsModel; } ChannelModel *Models::getPublicGroupsModel() { return mPublicGroupsModel; } ChannelModel *Models::getPrivateGroupsModel() { return mPrivateGroupsModel; } MessagesModel *Models::getMessagesModel() { return mMessagesModel; } MessageSearchResultsModel *Models::getMessagesSearchModel() { return mMessagesSearchModel; } RoomSearchResultsModel *Models::getRoomSearchModel() { return mRoomsSearchModel; } void Models::resetModels() { mDirectChannelsModel->clear(); auto result = QMetaObject::invokeMethod( mLoginMethodsModel, "clear" ); Q_ASSERT( result ); // mLoginMethodsModel->clear(); mPublicGroupsModel->clear(); mPrivateGroupsModel->clear(); mMessagesSearchModel->clear(); mRoomsSearchModel->clear(); mEmojisModel->clear(); } void Models::init() { if ( mDirectChannelsModel == nullptr ) { mDirectChannelsModel = new ChannelModel(); } if ( mLoginMethodsModel == nullptr ) { mLoginMethodsModel = new LoginMethodsModel(); } if ( mPublicGroupsModel == nullptr ) { mPublicGroupsModel = new ChannelModel(); } if ( mPrivateGroupsModel == nullptr ) { mPrivateGroupsModel = new ChannelModel(); } if ( mMessagesModel == nullptr ) { mMessagesModel = new MessagesModel(); } if ( mUserModel == nullptr ) { mUserModel = new UserModel(); } if ( mMessagesSearchModel == nullptr ) { mMessagesSearchModel = new MessageSearchResultsModel(); } if ( mRoomsSearchModel == nullptr ) { mRoomsSearchModel = new RoomSearchResultsModel(); } if ( mEmojisModel == nullptr ) { mEmojisModel = new EmojisModel(); } } Models::~Models() { Models::mDirectChannelsModel->deleteLater(); Models::mLoginMethodsModel->deleteLater(); Models::mMessagesModel->deleteLater(); Models::mPrivateGroupsModel->deleteLater(); Models::mPublicGroupsModel->deleteLater(); Models::mUserModel->deleteLater(); Models::mMessagesSearchModel->deleteLater(); Models::mRoomsSearchModel->deleteLater(); } EmojisModel *Models::getEmojisModel() { return mEmojisModel; }