-
Armin Felder authoredArmin Felder authored
models.cpp 2.83 KiB
#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;
}