From eb4b96ece6664d24b0d09ba0edfd98761ef4b6c3 Mon Sep 17 00:00:00 2001 From: Armin Felder <armin.felder@osalliance.com> Date: Sat, 24 Nov 2018 19:47:31 +0100 Subject: [PATCH] sa --- CustomModels/emojismodel.cpp | 7 +++- api/meteorddp.cpp | 2 +- rocketchatserver.cpp | 62 +++++++++++++++++------------------- services/emojiservice.cpp | 12 +++---- services/emojiservice.h | 2 +- services/messageservice.cpp | 4 +-- 6 files changed, 46 insertions(+), 43 deletions(-) diff --git a/CustomModels/emojismodel.cpp b/CustomModels/emojismodel.cpp index 520afdd..2b246fa 100644 --- a/CustomModels/emojismodel.cpp +++ b/CustomModels/emojismodel.cpp @@ -1,4 +1,5 @@ #include "emojismodel.h" +#include <QDebug> EmojisModel::EmojisModel() { @@ -91,6 +92,10 @@ void EmojisModel::addEmoji( const QSharedPointer<Emoji> &pEmoji ) void EmojisModel::addEmojisByCategory( const QString &pCategory, const QList<QSharedPointer<Emoji> > &pList ) { + static int counter = 0; + qDebug() << "called: " << counter++; + qDebug() << "category: " << pCategory; + if ( mCurrentCategory == pCategory ) { beginResetModel(); } @@ -102,8 +107,8 @@ void EmojisModel::addEmojisByCategory( const QString &pCategory, const QList<QSh for ( const auto &element : pList ) { if ( !mDuplicateCheck.contains( element->getIdentifier() ) ) { - mData[pCategory].append( element ); mDuplicateCheck.insert( element->getIdentifier() ); + mData[pCategory].append( std::move( element ) ); } } diff --git a/api/meteorddp.cpp b/api/meteorddp.cpp index 57e0c62..3aa7234 100755 --- a/api/meteorddp.cpp +++ b/api/meteorddp.cpp @@ -249,7 +249,7 @@ void MeteorDDP::resume() if ( mWsClient->isDisconnected() ) { mWsClient->open( wsUri ); } else if ( !mWsClient->isConnecting() ) { - QMetaObject::Connection *const connection = new QMetaObject::Connection; + auto const connection = new QMetaObject::Connection; *connection = connect( mWsClient, &Websocket::closed, [ = ]() { qDebug() << "websocket closed"; mWsClient->open( wsUri ); diff --git a/rocketchatserver.cpp b/rocketchatserver.cpp index fc0f4ad..c50540d 100755 --- a/rocketchatserver.cpp +++ b/rocketchatserver.cpp @@ -192,9 +192,6 @@ void RocketChatServerData::loadEmojis() for ( const auto &emoji : emojiList ) { if ( mEmojiRepo != nullptr && !emoji.isNull() ) { mEmojiRepo->add( emoji->getIdentifier(), emoji ); - // if(emoji->getCategory() == "custom"){ - // mCustomEmojisHash = Utils::hash(mCustomEmojis); - // } } auto category = emoji->getCategory(); @@ -204,13 +201,13 @@ void RocketChatServerData::loadEmojis() emojisByCategory[category].reserve( 500 ); } - emojisByCategory[category].append( emoji ); + emojisByCategory[category].append( std::move( emoji ) ); } auto keys = emojisByCategory.keys(); for ( const auto &key : keys ) { - QMetaObject::invokeMethod( emojiModel, "addEmojisByCategory", Q_ARG( QString, key ), Q_ARG( QList<QSharedPointer<Emoji>>, emojisByCategory[key] ) ); + QMetaObject::invokeMethod( emojiModel, "addEmojisByCategory", Q_ARG( QString, key ), Q_ARG( QList<QSharedPointer<Emoji>>, std::move( emojisByCategory[key] ) ) ); } } @@ -1713,51 +1710,52 @@ void RocketChatServerData::sendMessage( const QString &pMessage, const QString & void RocketChatServerData::getCustomEmojis() { - std::function<void ( QList<QSharedPointer<Emoji>> )> success = [ = ]( QList<QSharedPointer<Emoji>> pEmojiList ) { - auto emojiModel = Models::getEmojisModel(); + std::function<void ( QList<QSharedPointer<Emoji>> )> success = [ = ]( const QList<QSharedPointer<Emoji>> &pEmojiList ) { - if ( pEmojiList.size() ) { + if ( !pEmojiList.isEmpty() ) { + auto emojiModel = Models::getEmojisModel(); mStorage->transaction(); + QList<QSharedPointer<Emoji>> newEmojis; + for ( const auto &emoji : pEmojiList ) { if ( !emoji.isNull() ) { - mEmojiService->persistEmoji( emoji ); - if ( !mEmojiRepo->contains( emoji->getIdentifier() ) ) { + mEmojiService->persistEmoji( emoji ); mEmojiRepo->add( emoji->getIdentifier(), emoji ); + newEmojis.append( std::move( emoji ) ); } } } - QMetaObject::invokeMethod( emojiModel, "addEmojisByCategory", Q_ARG( QString, "custom" ), Q_ARG( QList<QSharedPointer<Emoji>>, pEmojiList ) ); - + if ( !newEmojis.isEmpty() ) { + QMetaObject::invokeMethod( emojiModel, "addEmojisByCategory", Q_ARG( QString, "custom" ), Q_ARG( QList<QSharedPointer<Emoji>>, std::move( newEmojis ) ) ); + } mStorage->commit(); } - //emit customEmojisReceived( getEmojisByCategory() ); - - QSharedPointer<RocketChatSubscribeRoomsChanged> notifyRoomsChanged( new RocketChatSubscribeRoomsChanged( this->mUserId ) ); - QSharedPointer<RocketChatSubscribeUserNotify> notifySubSubscription( new RocketChatSubscribeUserNotify( this->mUserId ) ); - QSharedPointer<RocketChatNotifyNoticesRequest> notifyNoticeSubSubscription( new RocketChatNotifyNoticesRequest( this->mUserId ) ); - QSharedPointer<RocketChatSubScriptionChangedRequest> noitfySubscriptionsSubscription( new RocketChatSubScriptionChangedRequest( this->mUserId ) ); - QSharedPointer<RocketChatSubscribeActiveUsers> activeUsersSubscription( new RocketChatSubscribeActiveUsers() ); - QSharedPointer<RocketChatSubscribeUserData> userData( new RocketChatSubscribeUserData() ); - sendDdprequest( notifySubSubscription, true ); - sendDdprequest( notifyNoticeSubSubscription, true ); - sendDdprequest( noitfySubscriptionsSubscription, true ); - sendDdprequest( activeUsersSubscription, true ); - sendDdprequest( notifyRoomsChanged, true ); - sendDdprequest( userData, true ); - onLoggedIn(); - sendUnsentMessages(); - getServerSettings(); - emit registerForPush(); qDebug() << "ddp authenticated"; - this->initialised = 1; + this->initialised = true; }; + QSharedPointer<RocketChatSubscribeRoomsChanged> notifyRoomsChanged( new RocketChatSubscribeRoomsChanged( this->mUserId ) ); + QSharedPointer<RocketChatSubscribeUserNotify> notifySubSubscription( new RocketChatSubscribeUserNotify( this->mUserId ) ); + QSharedPointer<RocketChatNotifyNoticesRequest> notifyNoticeSubSubscription( new RocketChatNotifyNoticesRequest( this->mUserId ) ); + QSharedPointer<RocketChatSubScriptionChangedRequest> noitfySubscriptionsSubscription( new RocketChatSubScriptionChangedRequest( this->mUserId ) ); + QSharedPointer<RocketChatSubscribeActiveUsers> activeUsersSubscription( new RocketChatSubscribeActiveUsers() ); + QSharedPointer<RocketChatSubscribeUserData> userData( new RocketChatSubscribeUserData() ); + sendDdprequest( notifySubSubscription, true ); + sendDdprequest( notifyNoticeSubSubscription, true ); + sendDdprequest( noitfySubscriptionsSubscription, true ); + sendDdprequest( activeUsersSubscription, true ); + sendDdprequest( notifyRoomsChanged, true ); + sendDdprequest( userData, true ); + + sendUnsentMessages(); + getServerSettings(); + emit registerForPush(); mEmojiService->loadCustomEmojis( success ); } @@ -1786,7 +1784,7 @@ void RocketChatServerData::uploadFile( const QString &pChannelId, const QString file.close(); } - FileUploader *uploader = new FileUploader( this, uri, pChannelId ); + auto uploader = new FileUploader( this, uri, pChannelId ); std::function<void( void )> success = [ = ]() { emit fileUploadFinished( uploader->getFileId() ); delete uploader; diff --git a/services/emojiservice.cpp b/services/emojiservice.cpp index 2a73360..34552fa 100755 --- a/services/emojiservice.cpp +++ b/services/emojiservice.cpp @@ -46,7 +46,7 @@ void EmojiService::loadCustomEmojis( const std::function<void ( QList<QSharedPoi DdpCallback success = [ = ]( const QJsonObject & pResponse, MeteorDDP * pDdp ) { Q_UNUSED( pDdp ); QJsonArray result = pResponse[QStringLiteral( "result" )].toArray(); - EmojiData *data = new EmojiData( result ); + auto data = new EmojiData( result ); data->success = pSuccess; handleCustomEmojisReceived( data ); }; @@ -66,8 +66,8 @@ QList<QSharedPointer<Emoji>> EmojiService::loadEmojisFromDb() emojiList.reserve( 3000 ); for ( const auto ¤t : emojiData ) { - auto parsedEmojis = parseEmoji( current ); - emojiList.append( parsedEmojis ); + auto parsedEmojis = parseEmoji( std::move( current ) ); + emojiList.append( std::move( parsedEmojis ) ); } return emojiList; @@ -141,7 +141,7 @@ QSharedPointer<Emoji> EmojiService::parseEmoji( const QHash<QString, QString> &p QString unicode = pEmojiData[QStringLiteral( "unicode" )]; int order = pEmojiData[QStringLiteral( "sort_order" )].toInt(); - QSharedPointer<Emoji> emoji( new Emoji( name, catgeory, filePath, html, unicode, order ) ); + QSharedPointer<Emoji> emoji( new Emoji( std::move( name ), std::move( catgeory ), std::move( filePath ), std::move( html ), std::move( unicode ), order ) ); return emoji; } @@ -151,7 +151,7 @@ QSharedPointer<Emoji> EmojiService::parseEmoji( const QJsonObject &pEmojiData ) QString extension = pEmojiData[QStringLiteral( "extension" )].toString(); QString category = pEmojiData[QStringLiteral( "category" )].toString(); - QSharedPointer<Emoji> emoji( new Emoji( name, extension, category ) ); + QSharedPointer<Emoji> emoji( new Emoji( std::move( name ), std::move( extension ), std::move( category ) ) ); return emoji; } @@ -166,7 +166,7 @@ EmojiData::EmojiData( const QJsonArray &data ) this->emojiCounter = data.count(); } -QJsonArray EmojiData::getEmojiData() const +const QJsonArray &EmojiData::getEmojiData() const { return emojiData; } diff --git a/services/emojiservice.h b/services/emojiservice.h index 14cbbf8..46af61b 100644 --- a/services/emojiservice.h +++ b/services/emojiservice.h @@ -38,7 +38,7 @@ class EmojiData { public: EmojiData( const QJsonArray &data ); - QJsonArray getEmojiData() const; + const QJsonArray &getEmojiData() const; QAtomicInt emojiCounter = 0; QAtomicInt emojisProcessed = 0; QJsonArray emojiData = {}; diff --git a/services/messageservice.cpp b/services/messageservice.cpp index b30d378..a71d576 100644 --- a/services/messageservice.cpp +++ b/services/messageservice.cpp @@ -281,7 +281,7 @@ void MessageService::loadHistoryFromServer( const QSharedPointer<LoadHistoryRequ QSharedPointer<QSet<QString>> duplicateCheck( new QSet<QString> ); if ( requests.length() ) { - QMultiMap<QString, ChatMessage> *list = new QMultiMap<QString, ChatMessage>; + auto list = new QMultiMap<QString, ChatMessage>; //loop over all channels for ( const auto ¤tChannelRequest : requests ) { @@ -373,7 +373,7 @@ void MessageService::loadHistoryFromServer( const QSharedPointer<LoadHistoryServ QMultiMap<QString, ChatMessage> *MessageService::loadHistoryFromDb( const QSharedPointer<LoadHistoryServiceRequest> &pRequest ) { - QMultiMap<QString, ChatMessage> *channelMap = new QMultiMap<QString, ChatMessage>; + auto channelMap = new QMultiMap<QString, ChatMessage>; if ( !pRequest.isNull() ) { QStringList channelIds = pRequest->getChannelIds(); -- GitLab