From 567d01389216df8c782c871b23f5a7ca9e6ca4c6 Mon Sep 17 00:00:00 2001 From: Armin Felder <armin.felder@osalliance.com> Date: Sat, 1 Dec 2018 17:12:53 +0100 Subject: [PATCH] use make shared -> Qsharedpointer::create --- CustomModels/messagemodel.cpp | 14 +-- api/messagelistener.h | 2 +- repos/emojirepo.cpp | 17 ++-- repos/emojirepo.h | 5 +- repos/entities/emoji.cpp | 5 +- repos/messagerepository.cpp | 5 +- repos/messagerepository.h | 5 +- repos/userrepository.cpp | 2 +- repos/userrepository.h | 4 +- rocketchat.cpp | 24 ++++- rocketchatserver.cpp | 133 +++++++++++++++++--------- services/emojiservice.cpp | 14 ++- services/fileservice.cpp | 18 ++-- services/messageservice.cpp | 51 ++++++---- services/rocketchatchannelservice.cpp | 72 +++++++++----- utils.cpp | 2 +- 16 files changed, 236 insertions(+), 137 deletions(-) diff --git a/CustomModels/messagemodel.cpp b/CustomModels/messagemodel.cpp index dc15ebb..d3fd76d 100644 --- a/CustomModels/messagemodel.cpp +++ b/CustomModels/messagemodel.cpp @@ -33,7 +33,7 @@ QVariant MessagesModel::data( const QModelIndex &index, int role ) const { int row = index.row(); - QSharedPointer<RocketChatMessage> messageAtIndex = messagesOfCurrentChannel.at( row ); + auto messageAtIndex = messagesOfCurrentChannel.at( row ); auto roleType = static_cast<MessageRoles>( role ); @@ -102,22 +102,22 @@ QVariant MessagesModel::data( const QModelIndex &index, int role ) const return messageAtIndex->getId(); case MessageRoles::replyMessage: { - QList<QSharedPointer<RocketChatAttachment> > attachments = messageAtIndex->getAttachments(); + auto attachments = messageAtIndex->getAttachments(); if ( attachments.size() ) { - QSharedPointer<RocketChatAttachment> first = attachments.first(); - QSharedPointer<RocketChatReplyMessage> msg = qSharedPointerCast<RocketChatReplyMessage>( first ); + auto first = attachments.first(); + auto msg = qSharedPointerCast<RocketChatReplyMessage>( first ); return msg->getMessageString(); } } break; case MessageRoles::replyAutor: { - QList<QSharedPointer<RocketChatAttachment> > attachments = messageAtIndex->getAttachments(); + auto attachments = messageAtIndex->getAttachments(); if ( attachments.size() ) { - QSharedPointer<RocketChatAttachment> first = attachments.first(); - QSharedPointer<RocketChatReplyMessage> msg = qSharedPointerCast<RocketChatReplyMessage>( first ); + auto first = attachments.first(); + auto msg = qSharedPointerCast<RocketChatReplyMessage>( first ); return msg->getAuthor(); } } diff --git a/api/messagelistener.h b/api/messagelistener.h index 31c37ee..34e9b1c 100644 --- a/api/messagelistener.h +++ b/api/messagelistener.h @@ -10,8 +10,8 @@ class MessageListener: public QObject { Q_OBJECT public: + MessageListener( QObject *parent = nullptr ): QObject( parent ) {} virtual bool handlesMessage( const QJsonObject &object ) = 0; }; #endif // MESSAGELISTENER_H - diff --git a/repos/emojirepo.cpp b/repos/emojirepo.cpp index f327a47..570f06f 100644 --- a/repos/emojirepo.cpp +++ b/repos/emojirepo.cpp @@ -35,20 +35,19 @@ bool EmojiRepo::add( const QSharedPointer<Emoji> &pEmoji ) bool EmojiRepo::add( const QString &pId, const QSharedPointer<Emoji> &pEmoji ) { if ( !pEmoji.isNull() ) { - if ( !mEmojisOrdered.isEmpty() ) { - if ( !pEmoji->getOrder() ) { - pEmoji->setOrder( mEmojisOrdered.last()->getOrder() + 1 ); + if ( !pEmoji->getOrder() ) { + mHighestOrder++; + pEmoji->setOrder( mHighestOrder ); + } else { + auto emojiOrder = pEmoji->getOrder(); + + if ( emojiOrder > mHighestOrder ) { + mHighestOrder = emojiOrder; } } - mEmojisOrdered.insert( pEmoji->getOrder(), pEmoji ); return AbstractBaseRepository::add( pId, pEmoji ); } else { return false; } } - -const QMap<int, QSharedPointer<Emoji> > &EmojiRepo::emojisOrdered() const -{ - return mEmojisOrdered; -} diff --git a/repos/emojirepo.h b/repos/emojirepo.h index 7e06c20..4bf5bda 100644 --- a/repos/emojirepo.h +++ b/repos/emojirepo.h @@ -36,11 +36,8 @@ class EmojiRepo : public QObject, public AbstractBaseRepository<Emoji> EmojiRepo( QObject *parent = nullptr ); bool add( const QSharedPointer<Emoji> &pEmoji ); bool add( const QString &pId, const QSharedPointer<Emoji> &pEmoji ); - - const QMap<int, QSharedPointer<Emoji> > &emojisOrdered() const; - private: - QMap<int, QSharedPointer<Emoji> > mEmojisOrdered; + int mHighestOrder = 0; }; #endif // EMOJIREPO_H diff --git a/repos/entities/emoji.cpp b/repos/entities/emoji.cpp index 9d4e183..301a14b 100644 --- a/repos/entities/emoji.cpp +++ b/repos/entities/emoji.cpp @@ -21,6 +21,7 @@ #include "emoji.h" +//TODO data form db already contain :.*: thats confusing an inconsitent Emoji::Emoji( QString name, QString extension, QString category ): mCategory( std::move( category ) ) { mName = std::move( name ); @@ -32,7 +33,7 @@ Emoji::Emoji( QString name, QString extension, QString category ): mCategory( st Emoji::Emoji( QString name, QString category, QString filePath, QString html ): mCategory( std::move( category ) ) { mName = std::move( name ); - this->mIdentifier = ':' + mName + ':'; + this->mIdentifier = mName; mFilePath = std::move( filePath ); QFileInfo fileInfo( mFilePath ); mhtml = std::move( html ); @@ -52,7 +53,7 @@ Emoji::Emoji( QString name, QString category, QString filePath, QString html, QS Emoji::Emoji( QString name, QString category, QString filePath, QString html, QString unicode, int order ): mCategory( std::move( category ) ), mUnicodeChar( std::move( unicode ) ), mOrder( order ) { mName = std::move( name ); - this->mIdentifier = ':' + mName + ':'; + this->mIdentifier = mName ; mFilePath = std::move( filePath ); QFileInfo fileInfo( mFilePath ); mhtml = html; diff --git a/repos/messagerepository.cpp b/repos/messagerepository.cpp index 10b4ad2..5ade0fb 100755 --- a/repos/messagerepository.cpp +++ b/repos/messagerepository.cpp @@ -21,7 +21,7 @@ #include "messagerepository.h" -MessageRepository::MessageRepository() +MessageRepository::MessageRepository( QObject *parent ): QObject( parent ) { mElements.reserve( 100 ); } @@ -76,7 +76,8 @@ QVector<QSharedPointer<RocketChatMessage> > MessageRepository::messagesAsObjects for ( const auto &message : mTimestampIndex.values() ) { if ( !message.isNull() ) { - QSharedPointer<RocketChatMessage> sortable( new RocketChatMessage( *message.data() ) ); + //QSharedPointer<RocketChatMessage> sortable( new RocketChatMessage( *message.data() ) ); + auto sortable = QSharedPointer<RocketChatMessage>::create( *message.data() ); list.append( sortable ); } } diff --git a/repos/messagerepository.h b/repos/messagerepository.h index 80b672b..042f601 100755 --- a/repos/messagerepository.h +++ b/repos/messagerepository.h @@ -32,10 +32,11 @@ class RocketChatMessage; typedef QSharedPointer<RocketChatMessage> ChatMessage; -class MessageRepository : public AbstractBaseRepository<RocketChatMessage> +class MessageRepository : public QObject, public AbstractBaseRepository<RocketChatMessage> { + Q_OBJECT public: - MessageRepository(); + MessageRepository( QObject *parent = nullptr ); ChatMessage youngest(); const ChatMessage &youngest() const; ChatMessage oldest(); diff --git a/repos/userrepository.cpp b/repos/userrepository.cpp index edb3a70..3a6f2cc 100755 --- a/repos/userrepository.cpp +++ b/repos/userrepository.cpp @@ -22,7 +22,7 @@ #include "userrepository.h" -UserRepository::UserRepository() +UserRepository::UserRepository( QObject *parent ): QObject( parent ) { mElements.reserve( 50 ); } diff --git a/repos/userrepository.h b/repos/userrepository.h index 5888cf4..933b075 100755 --- a/repos/userrepository.h +++ b/repos/userrepository.h @@ -24,10 +24,10 @@ #define USERREPOSITORY_H #include "abstractbaserepository.h" #include "repos/entities/rocketchatuser.h" -class UserRepository : public AbstractBaseRepository<RocketChatUser> +class UserRepository : public QObject, public AbstractBaseRepository<RocketChatUser> { public: - UserRepository(); + UserRepository( QObject *parent = nullptr ); }; #endif // USERREPOSITORY_H diff --git a/rocketchat.cpp b/rocketchat.cpp index 08c9945..359ad36 100755 --- a/rocketchat.cpp +++ b/rocketchat.cpp @@ -47,10 +47,6 @@ void customOutput( QtMsgType type, const QMessageLogContext &context, const QStr { QByteArray localMsg = msg.toLocal8Bit(); - if ( msg.contains( "QObject::connect: Cannot queue arguments of type 'QQmlChangeSet'" ) ) { - qDebug() << "break"; - } - switch ( type ) { case QtDebugMsg: fprintf( stderr, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function ); @@ -96,8 +92,26 @@ RocketChat::RocketChat( QGuiApplication *app ) RocketChat::~RocketChat() { - mServerThread.quit(); + static auto destructCounter = mServerMap.size(); + + if ( !destructCounter ) { + mServerThread.quit(); + } else { + for ( auto element : mServerMap ) { + connect( element, &RocketChatServerData::destroyed, [ = ]() { + destructCounter--; + + if ( !destructCounter ) { + mServerThread.quit(); + } + } ); + + element->deleteLater(); + } + } + mServerThread.wait(); + } diff --git a/rocketchatserver.cpp b/rocketchatserver.cpp index bebccf9..ad33994 100755 --- a/rocketchatserver.cpp +++ b/rocketchatserver.cpp @@ -265,7 +265,8 @@ void RocketChatServerData::switchChannelByName( const QString &pName, const QStr switchChannel( QStringLiteral( "default" ), id, pName, pType ); } }; - QSharedPointer<RocketChatGetRoomByNameAndType> request( new RocketChatGetRoomByNameAndType( pName, pType ) ); + auto request = QSharedPointer<RocketChatGetRoomByNameAndType>::create( pName, pType ); + // QSharedPointer<RocketChatGetRoomByNameAndType> request( pName, pType ); request->setSuccess( success ); sendDdprequest( request ); //searchForRoomIdByName( pName ); @@ -328,7 +329,8 @@ void RocketChatServerData::setUserPresenceDefaultStatus( int pStatus ) { if ( pStatus >= 0 && pStatus < 5 && isWebsocketValid() && diffToLastDDPPing() < 29 ) { - QSharedPointer<DDPMethodRequest> request( new RocketChatChangeUserPresenceDefaultStatus( static_cast<RocketChatUser::status>( pStatus ) ) ); + //QSharedPointer<DDPMethodRequest> request( new RocketChatChangeUserPresenceDefaultStatus( static_cast<RocketChatUser::status>( pStatus ) ) ); + auto request = QSharedPointer<RocketChatChangeUserPresenceDefaultStatus>::create( static_cast<RocketChatUser::status>( pStatus ) ); sendDdprequest( request, true ); } } @@ -337,7 +339,8 @@ void RocketChatServerData::setUserPresenceStatus( int pStatus ) { if ( pStatus >= 0 && pStatus < 5 && isWebsocketValid() && diffToLastDDPPing() < 29 ) { - QSharedPointer<DDPMethodRequest> request( new RocketChatChangeUserPresenceStatus( static_cast<RocketChatUser::status>( pStatus ) ) ); + // QSharedPointer<DDPMethodRequest> request( new RocketChatChangeUserPresenceStatus( static_cast<RocketChatUser::status>( pStatus ) ) ); + auto request = QSharedPointer<RocketChatChangeUserPresenceStatus>::create( static_cast<RocketChatUser::status>( pStatus ) ); sendDdprequest( request, true ); } } @@ -358,7 +361,8 @@ void RocketChatServerData::createVideoCall( const QString &pRid ) { if ( !pRid.isEmpty() ) { - QSharedPointer<DDPMethodRequest> request( new RocketChatUpdateJitsiTimeout( pRid ) ); + // QSharedPointer<DDPMethodRequest> request( new RocketChatUpdateJitsiTimeout( pRid ) ); + auto request = QSharedPointer<RocketChatUpdateJitsiTimeout>::create( pRid ); sendDdprequest( request ); joinJitsiCall( pRid ); } @@ -367,7 +371,8 @@ void RocketChatServerData::createVideoCall( const QString &pRid ) //TODO: rename, as method is not really for searching only void RocketChatServerData::searchForRoomIdByName( const QString &pName ) { - QSharedPointer<RestSpotlightRequest> request( new RestSpotlightRequest( pName ) ); + // QSharedPointer<RestSpotlightRequest> request( new RestSpotlightRequest( pName ) ); + auto request = QSharedPointer<RestSpotlightRequest>::create( pName ); std::function<void ( QNetworkReply *, QJsonObject data, RestApi * )> success = [ = ]( QNetworkReply *, QJsonObject data, RestApi * ) { if ( data.contains( QStringLiteral( "result" ) ) ) { @@ -423,14 +428,18 @@ void RocketChatServerData::blockUser( const QString &pChannelId ) QString possibleRoom1 = userId + mUserId; QString possibleRoom2 = mUserId + userId; - QSharedPointer<RocketChatBlockUserRequest> blockRequest1( new RocketChatBlockUserRequest( possibleRoom1, userId ) ); - QSharedPointer<RocketChatBlockUserRequest> blockRequest2( new RocketChatBlockUserRequest( possibleRoom2, userId ) ); + // QSharedPointer<RocketChatBlockUserRequest> blockRequest1( new RocketChatBlockUserRequest( possibleRoom1, userId ) ); + // QSharedPointer<RocketChatBlockUserRequest> blockRequest2( new RocketChatBlockUserRequest( possibleRoom2, userId ) ); + auto blockRequest1 = QSharedPointer<RocketChatBlockUserRequest>::create( possibleRoom1, userId ); + auto blockRequest2 = QSharedPointer<RocketChatBlockUserRequest>::create( possibleRoom2, userId ); + sendDdprequest( blockRequest1 ); sendDdprequest( blockRequest2 ); } else { - QSharedPointer<RocketChatBlockUserRequest> blockRequest( new RocketChatBlockUserRequest( pChannelId, userId ) ); + // QSharedPointer<RocketChatBlockUserRequest> blockRequest( new RocketChatBlockUserRequest( pChannelId, userId ) ); + auto blockRequest = QSharedPointer<RocketChatBlockUserRequest>::create( pChannelId, userId ); sendDdprequest( blockRequest ); } } @@ -443,12 +452,15 @@ void RocketChatServerData::unBlockUser( const QString &pChannelId ) if ( userId == pChannelId ) { QString possibleRoom1 = userId + mUserId; QString possibleRoom2 = mUserId + userId; - QSharedPointer<RocketChatUnblockUserRequest> unBlockRequest1( new RocketChatUnblockUserRequest( possibleRoom1, userId ) ); - QSharedPointer<RocketChatUnblockUserRequest> unBlockRequest2( new RocketChatUnblockUserRequest( possibleRoom2, userId ) ); + //QSharedPointer<RocketChatUnblockUserRequest> unBlockRequest1( new RocketChatUnblockUserRequest( possibleRoom1, userId ) ); + //QSharedPointer<RocketChatUnblockUserRequest> unBlockRequest2( new RocketChatUnblockUserRequest( possibleRoom2, userId ) ); + auto unBlockRequest1 = QSharedPointer<RocketChatUnblockUserRequest>::create( possibleRoom1, userId ); + auto unBlockRequest2 = QSharedPointer<RocketChatUnblockUserRequest>::create( possibleRoom2, userId ); sendDdprequest( unBlockRequest1 ); sendDdprequest( unBlockRequest2 ); } else { - QSharedPointer<RocketChatUnblockUserRequest> unBlockRequest( new RocketChatUnblockUserRequest( pChannelId, userId ) ); + // QSharedPointer<RocketChatUnblockUserRequest> unBlockRequest( new RocketChatUnblockUserRequest( pChannelId, userId ) ); + auto unBlockRequest = QSharedPointer<RocketChatUnblockUserRequest>::create( pChannelId, userId ); sendDdprequest( unBlockRequest ); } } @@ -464,7 +476,7 @@ void RocketChatServerData::setUserId( const QString &userId ) auto user = users->getUserById( userId ); if ( user.isNull() && !userId.isEmpty() ) { - user = QSharedPointer<RocketChatUser>( new RocketChatUser( userId ) ); + user = QSharedPointer<RocketChatUser>::create( userId ) ; //QSharedPointer<RocketChatUser>( new RocketChatUser( userId ) ); QMetaObject::invokeMethod( userModel, "addUser", Q_ARG( User, user ) ); } @@ -494,7 +506,9 @@ void RocketChatServerData::loadHistories() } } - QSharedPointer<LoadHistoryServiceRequest> request( new LoadHistoryServiceRequest( channelIds, 1 ) ); + //QSharedPointer<LoadHistoryServiceRequest> request( new LoadHistoryServiceRequest( channelIds, 1 ) ); + auto request = QSharedPointer<LoadHistoryServiceRequest>::create( channelIds, 1 ); + request->setLimit( 1 ); request->setSuccess( historyLoaded ); request->setNoLastThreeDays( true ); @@ -507,7 +521,8 @@ void RocketChatServerData::loadHistoryTill( const QString &pChannelId, qint64 pT std::function<void ( QMultiMap<QString, QSharedPointer<RocketChatMessage>> *messages )> success = [ = ]( QMultiMap<QString, QSharedPointer<RocketChatMessage>> *messages ) { historyLoaded( messages ); }; - QSharedPointer<LoadHistoryServiceRequest> request( new LoadHistoryServiceRequest( pChannelId ) ); + //QSharedPointer<LoadHistoryServiceRequest> request( new LoadHistoryServiceRequest( pChannelId ) ); + auto request = QSharedPointer<LoadHistoryServiceRequest>::create( pChannelId ); request->setEnd( pTs ); request->setLimit( 0 ); request->setSuccess( success ); @@ -567,8 +582,8 @@ void RocketChatServerData::setEmojiRepo( EmojiRepo *emojiRepo ) void RocketChatServerData::createAccount( const QString &username, const QString &email, const QString &password ) { - QSharedPointer<RocketChatCreateAccount> request( new RocketChatCreateAccount( username, email, password ) ); - + // QSharedPointer<RocketChatCreateAccount> request( new RocketChatCreateAccount( username, email, password ) ); + auto request = QSharedPointer<RocketChatCreateAccount>::create( username, email, password ); sendDdprequest( request ); } @@ -640,7 +655,9 @@ void RocketChatServerData::loginWithHash( const QString &pUsername, const QStrin auto self = this; - QSharedPointer<DDPLoginRequest> request( new DDPLoginRequest( pUsername, pPswHash ) ); + // QSharedPointer<DDPLoginRequest> request( new DDPLoginRequest( pUsername, pPswHash ) ); + auto request = QSharedPointer<DDPLoginRequest>::create( pUsername, pPswHash ); + DdpCallback success = [ self, pUsername, pPswHash, request ]( QJsonObject pResponse, MeteorDDP * ) { qDebug() << "authenticated"; @@ -701,7 +718,8 @@ void RocketChatServerData::loginWithToken( const QString &pUsername, const QStri }; - QSharedPointer<DDPLoginRequest> request( new DDPLoginRequest( pToken ) ); + // QSharedPointer<DDPLoginRequest> request( new DDPLoginRequest( pToken ) ); + auto request = QSharedPointer<DDPLoginRequest>::create( pToken ); DdpCallback success = [ = ]( QJsonObject pResponse, MeteorDDP * ) { qDebug() << "authenticated"; mConnectionState = ConnectionState::ONLINE; @@ -780,7 +798,8 @@ void RocketChatServerData::loginWtihSamlToken( const QString &pToken ) }; - QSharedPointer<ddpSamlLoginRequest> request( new ddpSamlLoginRequest( pToken ) ); + // QSharedPointer<ddpSamlLoginRequest> request( new ddpSamlLoginRequest( pToken ) ); + auto request = QSharedPointer<ddpSamlLoginRequest>::create( pToken ); DdpCallback success = [ = ]( QJsonObject pResponse, MeteorDDP * ) { qDebug() << "authenticated"; mConnectionState = ConnectionState::ONLINE; @@ -850,7 +869,8 @@ void RocketChatServerData::loginWithOpenIDToken( const QString &pToken, const QS }; - QSharedPointer<DDPOpenIDLoginRequest> request( new DDPOpenIDLoginRequest( pToken, pSecret ) ); + // QSharedPointer<DDPOpenIDLoginRequest> request( new DDPOpenIDLoginRequest( pToken, pSecret ) ); + auto request = QSharedPointer<DDPOpenIDLoginRequest>::create( pToken, pSecret ); DdpCallback success = [ = ]( QJsonObject pResponse, MeteorDDP * ) { qDebug() << "authenticated"; self->mConnectionState = ConnectionState::ONLINE; @@ -927,7 +947,8 @@ void RocketChatServerData::loginWithMethod( const QString &method, const QString void RocketChatServerData::onDDPConnected() { - QSharedPointer<PingRequest> request( new PingRequest() ); + //QSharedPointer<PingRequest> request( new PingRequest() ); + auto request = QSharedPointer<PingRequest>::create(); mDdpApi->sendRequest( request ); if ( mResumeOperation ) { @@ -987,7 +1008,7 @@ void RocketChatServerData::handleChannelMessage( const QJsonObject &pMessage ) QString rid = newChannel[QStringLiteral( "rid" )].toString(); if ( !mChannels->contains( QStringLiteral( "id" ) ) ) { - QSharedPointer<RocketChatChannel> channel = mChannelService->createChannelObject( rid, name, newChannel["t"].toString() ); + auto channel = mChannelService->createChannelObject( rid, name, newChannel["t"].toString() ); if ( !channel.isNull() ) { channel->setJoined( true ); @@ -1050,7 +1071,7 @@ void RocketChatServerData::handleChannelMessage( const QJsonObject &pMessage ) channel->setUsername( username ); } else { - QSharedPointer<RocketChatChannel> channel = mChannelService->createChannelObject( rid, name, data["t"].toString(), username ); + auto channel = mChannelService->createChannelObject( rid, name, data["t"].toString(), username ); channel->setBlocked( blocked ); channel->setUnreadMessages( unread ); mChannels->add( rid, channel ); @@ -1083,7 +1104,8 @@ void RocketChatServerData::getFileRessource( const QString &pUrl, const QString auto then = [ = ]( QSharedPointer<TempFile> tempfile, bool showInline ) { emit( fileRessourceProcessed( pUrl, tempfile->getFilePath(), showInline ) ); }; - QSharedPointer< FileRequest > request( new FileRequest( pUrl, pType, then, showInline ) ); + // QSharedPointer< FileRequest > request( new FileRequest( pUrl, pType, then, showInline ) ); + auto request = QSharedPointer<FileRequest>::create( pUrl, pType, then, showInline ); mFileService->getFileRessource( request ); } @@ -1092,7 +1114,8 @@ void RocketChatServerData::sendPushToken( const QString &pToken ) { if ( !mUserId.isEmpty() && !pToken.isEmpty() ) { qDebug() << "send push token " + pToken; - QSharedPointer<DDPRequest> sendToken = QSharedPointer<DDPRequest>( new RocketChatUpdatePushTokenRequest( pToken, mUserId ) ); + //QSharedPointer<DDPRequest> sendToken = QSharedPointer<DDPRequest>( new RocketChatUpdatePushTokenRequest( pToken, mUserId ) ); + auto sendToken = QSharedPointer<RocketChatUpdatePushTokenRequest>::create( pToken, mUserId ); sendDdprequest( sendToken ); } @@ -1223,7 +1246,8 @@ void RocketChatServerData::onDDPMessageReceived( const QJsonObject &pMessage ) user->setStatus( RocketChatUser::status::OFFLINE ); } } else { - auto newUser = QSharedPointer<RocketChatUser>( new RocketChatUser( userId ) ); + // auto newUser = QSharedPointer<RocketChatUser>( new RocketChatUser( userId ) ); + auto newUser = QSharedPointer<RocketChatUser>::create( userId ); if ( pMessage.contains( "fields" ) ) { QJsonObject fields = pMessage["fields"].toObject(); @@ -1344,7 +1368,7 @@ void RocketChatServerData::handleUserJoinMessage( const QJsonObject &pMessage ) QString username = userData[QStringLiteral( "username" )].toString(); if ( Q_LIKELY( mChannels->contains( roomId ) ) ) { - QSharedPointer<RocketChatChannel> channel = mChannels->get( roomId ); + auto channel = mChannels->get( roomId ); if ( !channel.isNull() ) { /* QSharedPointer<RocketChatUser> ptr( new RocketChatUser( username ) ); @@ -1471,7 +1495,9 @@ void RocketChatServerData::setUsername( const QString &pUsername ) void RocketChatServerData::getServerSettings() { QJsonArray params = {}; - QSharedPointer<DDPMethodRequest> request( new DDPMethodRequest( QStringLiteral( "public-settings/get" ), params ) ); + //QSharedPointer<DDPMethodRequest> request( new DDPMethodRequest( QStringLiteral( "public-settings/get" ), params ) ); + auto request = QSharedPointer<DDPMethodRequest>::create( QStringLiteral( "public-settings/get" ), params ); + DdpCallback sucess = [ = ]( QJsonObject data, MeteorDDP * ddpApi ) { Q_UNUSED( ddpApi ); QJsonArray configs = data[QStringLiteral( "result" )].toArray(); @@ -1521,7 +1547,8 @@ void RocketChatServerData::onLoggedIn() void RocketChatServerData::markChannelAsRead( const QString &pChannelId ) { if ( Q_LIKELY( mChannels->contains( pChannelId ) ) ) { - QSharedPointer<DDPRequest> markAsRead( new RocketChatMarkChannelAsReadRequest( pChannelId ) ); + //QSharedPointer<DDPRequest> markAsRead( new RocketChatMarkChannelAsReadRequest( pChannelId ) ); + auto markAsRead = QSharedPointer<RocketChatMarkChannelAsReadRequest>::create( pChannelId ); sendDdprequest( markAsRead ); } } @@ -1535,7 +1562,8 @@ void RocketChatServerData::joinChannel( const QString &pChannelId, bool pForce ) setUnreadMessages( pChannelId, 0 ); markChannelAsRead( pChannelId ); setCurrentChannel( pChannelId ); - QSharedPointer<LoadHistoryServiceRequest> serviceRequest( new LoadHistoryServiceRequest( pChannelId ) ); + // QSharedPointer<LoadHistoryServiceRequest> serviceRequest( new LoadHistoryServiceRequest( pChannelId ) ); + auto serviceRequest = QSharedPointer<LoadHistoryServiceRequest>::create( pChannelId ); serviceRequest->setSuccess( historyLoaded ); serviceRequest->setLimit( 300 ); mMessageService->loadHistory( serviceRequest ); @@ -1590,7 +1618,8 @@ void RocketChatServerData::joinChannelByNameAndType( const QString &pChannelName if ( pType == "d" ) { mChannelService->openPrivateChannelWith( pChannelName ); } else { - QSharedPointer<RocketChatGetRoomByNameAndType> request( new RocketChatGetRoomByNameAndType( pChannelName, pType ) ); + //QSharedPointer<RocketChatGetRoomByNameAndType> request( new RocketChatGetRoomByNameAndType( pChannelName, pType ) ); + auto request = QSharedPointer<RocketChatGetRoomByNameAndType>::create( pChannelName, pType ); request->setSuccess( success ); sendDdprequest( request ); } @@ -1630,7 +1659,8 @@ void RocketChatServerData::loadRecentHistory( const QString &pChannelId ) } double start = end - ( 86400 * 3 * 1000 ); - QSharedPointer<LoadHistoryServiceRequest> request( new LoadHistoryServiceRequest( pChannelId ) ); + //QSharedPointer<LoadHistoryServiceRequest> request( new LoadHistoryServiceRequest( pChannelId ) ); + auto request = QSharedPointer<LoadHistoryServiceRequest>::create( pChannelId ); request->setNoLastThreeDays( true ); request->setStart( start ); request->setEnd( end ); @@ -1654,7 +1684,8 @@ void RocketChatServerData::loadRecentHistory( const QString &pChannelId ) void RocketChatServerData::sendMessage( const QString &pMessage, const QString &pChannelId ) { - ChatMessage message( new RocketChatMessage( pChannelId, pMessage ) ); + //ChatMessage message( new RocketChatMessage( pChannelId, pMessage ) ); + auto message = QSharedPointer< RocketChatMessage>::create( pChannelId, pMessage ); mMessageService->sendMessage( message ); } @@ -1695,12 +1726,18 @@ void RocketChatServerData::getCustomEmojis() mCustomEmojisReady = 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() ); + //QSharedPointer<RocketChatSubscribeRoomsChanged> notifyRoomsChanged( new RocketChatSubscribeRoomsChanged( this->mUserId ) ); + auto notifyRoomsChanged = QSharedPointer<RocketChatSubscribeRoomsChanged>::create( this->mUserId ); + // QSharedPointer<RocketChatSubscribeUserNotify> notifySubSubscription( new RocketChatSubscribeUserNotify( this->mUserId ) ); + auto notifySubSubscription = QSharedPointer<RocketChatSubscribeUserNotify>::create( this->mUserId ); + // QSharedPointer<RocketChatNotifyNoticesRequest> notifyNoticeSubSubscription( new RocketChatNotifyNoticesRequest( this->mUserId ) ); + auto notifyNoticeSubSubscription = QSharedPointer<RocketChatNotifyNoticesRequest>::create( this->mUserId ); + // QSharedPointer<RocketChatSubScriptionChangedRequest> noitfySubscriptionsSubscription( new RocketChatSubScriptionChangedRequest( this->mUserId ) ); + auto noitfySubscriptionsSubscription = QSharedPointer<RocketChatSubScriptionChangedRequest>::create( this->mUserId ); + //QSharedPointer<RocketChatSubscribeActiveUsers> activeUsersSubscription( new RocketChatSubscribeActiveUsers() ); + auto activeUsersSubscription = QSharedPointer<RocketChatSubscribeActiveUsers>::create(); + // QSharedPointer<RocketChatSubscribeUserData> userData( new RocketChatSubscribeUserData() ); + auto userData = QSharedPointer<RocketChatSubscribeUserData>::create(); sendDdprequest( notifySubSubscription, true ); sendDdprequest( notifyNoticeSubSubscription, true ); sendDdprequest( noitfySubscriptionsSubscription, true ); @@ -1798,7 +1835,8 @@ void RocketChatServerData::getLoginMethods() Q_UNUSED( pDdpApi ); qDebug() << "loginMethods Recieved"; }; - QSharedPointer<RocketChatSubscribeLoginMethods> loginMethodsSubscription( new RocketChatSubscribeLoginMethods() ); + // QSharedPointer<RocketChatSubscribeLoginMethods> loginMethodsSubscription( new RocketChatSubscribeLoginMethods() ); + auto loginMethodsSubscription = QSharedPointer<RocketChatSubscribeLoginMethods>::create(); loginMethodsSubscription->setSuccess( success ); // sendDdprequest( loginMethodsSubscription ); mDdpApi->sendRequest( loginMethodsSubscription ); @@ -1824,7 +1862,8 @@ void RocketChatServerData::getServerInfo() } } }; - QSharedPointer<GetServerInfoRequest> serverInfoRequest( new GetServerInfoRequest( success, nullptr ) ); + // QSharedPointer<GetServerInfoRequest> serverInfoRequest( new GetServerInfoRequest( success, nullptr ) ); + auto serverInfoRequest = QSharedPointer<GetServerInfoRequest>::create( success, nullptr ); mRestApi->sendRequest( serverInfoRequest ); } @@ -1883,7 +1922,8 @@ void RocketChatServerData::resume( void ) void RocketChatServerData::logout() { qDebug() << "logged out"; - RestApiRequest logoutRequest = QSharedPointer<RestRequest>( new RestLogoutRequest ); + // RestApiRequest logoutRequest = QSharedPointer<RestRequest>( new RestLogoutRequest ); + auto logoutRequest = QSharedPointer<RestLogoutRequest>::create(); mResumeOperation = false; emit resetLoginMethods(); mDdpApi->resume(); @@ -1919,7 +1959,8 @@ void RocketChatServerData::createPublicGroup( const QString &pChannelName, const } } }; - QSharedPointer<RocketChatCreatePublicGroupRequest> request( new RocketChatCreatePublicGroupRequest( pChannelName, pUsers, pReadonly ) ); + // QSharedPointer<RocketChatCreatePublicGroupRequest> request( new RocketChatCreatePublicGroupRequest( pChannelName, pUsers, pReadonly ) ); + auto request = QSharedPointer<RocketChatCreatePublicGroupRequest>::create( pChannelName, pUsers, pReadonly ); sendDdprequest( request ); } @@ -1939,7 +1980,8 @@ void RocketChatServerData::createPrivateGroup( const QString &pChannelName, cons } } }; - QSharedPointer<RocketChatCreatePrivateGroupRequest> request( new RocketChatCreatePrivateGroupRequest( pChannelName, pUsers, pReadonly ) ); + // QSharedPointer<RocketChatCreatePrivateGroupRequest> request( new RocketChatCreatePrivateGroupRequest( pChannelName, pUsers, pReadonly ) ); + auto request = QSharedPointer<RocketChatCreatePrivateGroupRequest>::create( pChannelName, pUsers, pReadonly ); request->setSuccess( success ); sendDdprequest( request ); } @@ -1955,7 +1997,8 @@ void RocketChatServerData::addUsersToChannel( const QString &pChannelId, const Q if ( Q_LIKELY( !user.isEmpty() ) ) { QStringList usernames( user ); - QSharedPointer<RocketChatAddUsersToChannel > request( new RocketChatAddUsersToChannel( pChannelId, usernames ) ); + //QSharedPointer<RocketChatAddUsersToChannel > request( new RocketChatAddUsersToChannel( pChannelId, usernames ) ); + auto request = QSharedPointer<RocketChatAddUsersToChannel >::create( pChannelId, usernames ); request->setSuccess( success ); sendDdprequest( request ); } diff --git a/services/emojiservice.cpp b/services/emojiservice.cpp index 34552fa..08b615c 100755 --- a/services/emojiservice.cpp +++ b/services/emojiservice.cpp @@ -50,7 +50,8 @@ void EmojiService::loadCustomEmojis( const std::function<void ( QList<QSharedPoi data->success = pSuccess; handleCustomEmojisReceived( data ); }; - QSharedPointer<DDPMethodRequest> request( new DDPMethodRequest( QStringLiteral( "listEmojiCustom" ), params, success ) ); + // QSharedPointer<DDPMethodRequest> request( new DDPMethodRequest( QStringLiteral( "listEmojiCustom" ), params, success ) ); + auto request = QSharedPointer<DDPMethodRequest>::create( QStringLiteral( "listEmojiCustom" ), params, success ); server->sendDdprequest( request ); } /** @@ -94,7 +95,7 @@ void EmojiService::handleCustomEmojisReceived( EmojiData *data ) mParsedCustomEmojisTemp.append( parsedEmoji ); qDebug() << "emoji parsed: " << parsedEmoji->getIdentifier(); QString url = QStringLiteral( "/emoji-custom/" ) + parsedEmoji->getName() + '.' + parsedEmoji->getExtension(); - std::function<void ( QSharedPointer<TempFile>, bool )> then = [ = ]( QSharedPointer<TempFile> file, bool ) { + std::function<void ( QSharedPointer<TempFile>, bool )> then = [ = ]( const QSharedPointer<TempFile> &file, bool ) { if ( Q_UNLIKELY( file.isNull() ) ) { qWarning() << "file is null" << parsedEmoji->getIdentifier(); return; @@ -110,7 +111,8 @@ void EmojiService::handleCustomEmojisReceived( EmojiData *data ) data->success( mParsedCustomEmojisTemp ); } }; - QSharedPointer<FileRequest> fileRequest( new FileRequest( url, QStringLiteral( "emoji" ), then, true ) ); + // QSharedPointer<FileRequest> fileRequest( new FileRequest( url, QStringLiteral( "emoji" ), then, true ) ); + auto fileRequest = QSharedPointer<FileRequest>::create( url, QStringLiteral( "emoji" ), then, true ); mFileService->getFileRessource( fileRequest ); } } @@ -141,7 +143,8 @@ 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( std::move( name ), std::move( catgeory ), std::move( filePath ), std::move( html ), std::move( unicode ), order ) ); + //QSharedPointer<Emoji> emoji( new Emoji( std::move( name ), std::move( catgeory ), std::move( filePath ), std::move( html ), std::move( unicode ), order ) ); + auto emoji = QSharedPointer<Emoji>::create( std::move( name ), std::move( catgeory ), std::move( filePath ), std::move( html ), std::move( unicode ), order ); return emoji; } @@ -151,7 +154,8 @@ QSharedPointer<Emoji> EmojiService::parseEmoji( const QJsonObject &pEmojiData ) QString extension = pEmojiData[QStringLiteral( "extension" )].toString(); QString category = pEmojiData[QStringLiteral( "category" )].toString(); - QSharedPointer<Emoji> emoji( new Emoji( std::move( name ), std::move( extension ), std::move( category ) ) ); + //QSharedPointer<Emoji> emoji( new Emoji( std::move( name ), std::move( extension ), std::move( category ) ) ); + auto emoji = QSharedPointer<Emoji>::create( std::move( name ), std::move( extension ), std::move( category ) ); return emoji; } diff --git a/services/fileservice.cpp b/services/fileservice.cpp index 661dcf0..518e08d 100755 --- a/services/fileservice.cpp +++ b/services/fileservice.cpp @@ -97,19 +97,19 @@ QSharedPointer<TempFile> FileService::getFileFromCache( const QSharedPointer< Fi qDebug() << "storageEntry len " << storageEntry.size(); if ( !storageEntry.size() ) { - return QSharedPointer<TempFile> ( nullptr ); + return QSharedPointer<TempFile>( nullptr ); } else { QFile cacheHit( storageEntry ); if ( cacheHit.exists() ) { - return QSharedPointer<TempFile> ( new TempFile( storageEntry, pRequest->url ) ); + return QSharedPointer<TempFile>::create( storageEntry, pRequest->url ); } else { mStorage->removeFileCacheEntry( pRequest->url, storageEntry ); - return QSharedPointer<TempFile> ( nullptr ); + return QSharedPointer<TempFile>( nullptr ); } } } else { - return QSharedPointer<TempFile> ( nullptr ); + return QSharedPointer<TempFile>( nullptr ); } } @@ -158,7 +158,8 @@ void FileService::getFileFromServer( const QSharedPointer< FileRequest > &pReque QString dataHash = QCryptographicHash::hash( content, QCryptographicHash::Md5 ); if ( fileHash == dataHash ) { - QSharedPointer<TempFile> tempfile( new TempFile( location, url ) ); + //QSharedPointer<TempFile> tempfile( new TempFile( location, url ) ); + auto tempfile = QSharedPointer<TempFile>::create( location, url ); pRequest->then( tempfile, pRequest->showInline ); if ( location.size() ) { @@ -174,7 +175,8 @@ void FileService::getFileFromServer( const QSharedPointer< FileRequest > &pReque auto written = file.write( content ); qDebug() << "wrote byte to file" << written; file.close(); - QSharedPointer<TempFile> tempfile( new TempFile( location, url ) ); + //QSharedPointer<TempFile> tempfile( new TempFile( location, url ) ); + auto tempfile = QSharedPointer<TempFile>::create( location, url ); mStorage->addFileCacheEntry( url, location ); pRequest->then( tempfile, pRequest->showInline ); @@ -197,8 +199,8 @@ void FileService::getFileFromServer( const QSharedPointer< FileRequest > &pReque }; mCurrentDownloads.insert( fullUrl ); - RestApiRequest request = QSharedPointer<RestRequest>( new GetRequest( fullUrl, success, error, true, true ) ); - + //RestApiRequest request = QSharedPointer<RestRequest>( new GetRequest( fullUrl, success, error, true, true ) ); + auto request = QSharedPointer<GetRequest>::create( fullUrl, success, error, true, true ); mServer->sendApiRequest( request ); } } diff --git a/services/messageservice.cpp b/services/messageservice.cpp index eb5f3c1..72a9e62 100644 --- a/services/messageservice.cpp +++ b/services/messageservice.cpp @@ -78,8 +78,9 @@ void MessageService::sendMessage( const QSharedPointer<RocketChatMessage> &pMess QJsonObject params; params[QStringLiteral( "rid" )] = pMessage->getRoomId(); params[QStringLiteral( "msg" )] = pMessage->getMessageString(); - QSharedPointer<DDPRequest> sendMessageRequest( new DDPMethodRequest( - QStringLiteral( "sendMessage" ), {params} ) ); + // QSharedPointer<DDPRequest> sendMessageRequest( new DDPMethodRequest( + // QStringLiteral( "sendMessage" ), {params} ) ); + auto sendMessageRequest = QSharedPointer<DDPMethodRequest>::create( QStringLiteral( "sendMessage" ), QJsonArray( {params} ) ); mServer->sendDdprequest( sendMessageRequest, true ); } } @@ -181,13 +182,14 @@ QSharedPointer<RocketChatMessage> MessageService::parseMessage( const QJsonObjec QString formattedDate = date.toString( QStringLiteral( "dd.MM.yyyy" ) ); QString formattedTime = date.toString( QStringLiteral( "hh:mm" ) ); auto attachments = processAttachments( pMessageData ); - message = ChatMessage( new RocketChatMessage( pMessageData ) ); + //message = ChatMessage( new RocketChatMessage( pMessageData ) ); + message = QSharedPointer<RocketChatMessage>::create( pMessageData ); message->setAttachments( attachments ); message->setOwnMessage( ownMessage ); message->setAuthorId( authorId ); if ( attachments.size() > 0 ) { - QSharedPointer<RocketChatAttachment> firstAttachment = attachments.first(); + auto firstAttachment = attachments.first(); if ( !firstAttachment.isNull() ) { if ( firstAttachment->getType() == "replyMessage" ) { @@ -263,9 +265,9 @@ void MessageService::searchMessage( const QString &pTerm, const QString &pRoom ) } }; - QSharedPointer<RocketChatMessageSearchRequest> request( new RocketChatMessageSearchRequest( pTerm, - pRoom ) ); - + // QSharedPointer<RocketChatMessageSearchRequest> request( new RocketChatMessageSearchRequest( pTerm, + // pRoom ) ); + auto request = QSharedPointer<RocketChatMessageSearchRequest>::create( pTerm, pRoom ); request->setSuccess( ddpSuccess ); mServer->sendDdprequest( request ); @@ -278,7 +280,8 @@ void MessageService::loadHistoryFromServer( const QSharedPointer<LoadHistoryRequ pContainer->mAlredayReceived = 0; //TODO: fix memory leak risk - QSharedPointer<QSet<QString>> duplicateCheck( new QSet<QString> ); + //QSharedPointer<QSet<QString>> duplicateCheck( new QSet<QString> ); + auto duplicateCheck = QSharedPointer<QSet<QString>>::create(); if ( requests.length() ) { auto list = new QMultiMap<QString, ChatMessage>; @@ -306,8 +309,9 @@ void MessageService::loadHistoryFromServer( const QSharedPointer<LoadHistoryRequ params = {roomId, endObj, limit, startObj}; } - QSharedPointer<DDPMethodRequest> request( new DDPMethodRequest( QStringLiteral( "loadHistory" ), - params ) ); + // QSharedPointer<DDPMethodRequest> request( new DDPMethodRequest( QStringLiteral( "loadHistory" ), + // params ) ); + auto request = QSharedPointer<DDPMethodRequest>::create( QStringLiteral( "loadHistory" ), params ); DdpCallback ddpSuccess = [ = ]( const QJsonObject & pResponse, MeteorDDP * pDdp ) { Q_UNUSED( pDdp ); @@ -363,8 +367,9 @@ void MessageService::loadHistoryFromServer( const QSharedPointer<LoadHistoryServ if ( !pRequest.isNull() ) { QList<QSharedPointer<LoadHistoryServiceRequest>> list; list.append( pRequest ); - QSharedPointer<LoadHistoryRequestContainer> container( new LoadHistoryRequestContainer( list, - pRequest->getSuccess() ) ); + // QSharedPointer<LoadHistoryRequestContainer> container( new LoadHistoryRequestContainer( list, + // pRequest->getSuccess() ) ); + auto container = QSharedPointer<LoadHistoryRequestContainer>::create( list, pRequest->getSuccess() ); container->setSuccess( pRequest->getSuccess() ); loadHistoryFromServer( container ); } @@ -428,7 +433,8 @@ void MessageService::loadHistoryFromAutoSource( const QSharedPointer<LoadHistory timestamp = QDateTime::currentDateTime().toMSecsSinceEpoch(); } - QSharedPointer<LoadHistoryServiceRequest> newrequest( new LoadHistoryServiceRequest( key ) ); + // QSharedPointer<LoadHistoryServiceRequest> newrequest( new LoadHistoryServiceRequest( key ) ); + auto newrequest = QSharedPointer<LoadHistoryServiceRequest>::create( key ); newrequest->setStart( timestamp ); newrequest->setLimit( limit - currentList.count() ); @@ -439,7 +445,8 @@ void MessageService::loadHistoryFromAutoSource( const QSharedPointer<LoadHistory requestList.append( newrequest ); } } else { - QSharedPointer<LoadHistoryServiceRequest> newrequest( new LoadHistoryServiceRequest( key ) ); + //QSharedPointer<LoadHistoryServiceRequest> newrequest( new LoadHistoryServiceRequest( key ) ); + auto newrequest = QSharedPointer<LoadHistoryServiceRequest>::create( key ); double timestamp = QDateTime::currentDateTime().toMSecsSinceEpoch(); if ( pRequest->getStart() > -1 ) { @@ -460,7 +467,8 @@ void MessageService::loadHistoryFromAutoSource( const QSharedPointer<LoadHistory if ( !pRequest->getNoLastThreeDays() ) { double end = QDateTime::currentMSecsSinceEpoch(); double start = end - ( 86400 * 3 * 1000 ); - QSharedPointer<LoadHistoryServiceRequest> lastThreeDays( new LoadHistoryServiceRequest( key ) ); + //QSharedPointer<LoadHistoryServiceRequest> lastThreeDays( new LoadHistoryServiceRequest( key ) ); + auto lastThreeDays = QSharedPointer<LoadHistoryServiceRequest>::create( key ); pRequest->setStart( start ); pRequest->setStart( start ); requestList.append( lastThreeDays ); @@ -470,8 +478,9 @@ void MessageService::loadHistoryFromAutoSource( const QSharedPointer<LoadHistory auto success = pRequest->getSuccess(); success( channelMap ); qDebug() << "loaded from database now loading from sever with " << requestList.size() << "requests"; - QSharedPointer<LoadHistoryRequestContainer> requests( new LoadHistoryRequestContainer( requestList, - serverSuccess ) ); + //QSharedPointer<LoadHistoryRequestContainer> requests( new LoadHistoryRequestContainer( requestList, + // serverSuccess ) ); + auto requests = QSharedPointer<LoadHistoryRequestContainer>::create( requestList, serverSuccess ); loadHistoryFromServer( requests ); } @@ -523,8 +532,9 @@ QList<QSharedPointer<RocketChatAttachment>> MessageService::processAttachments( title = attachment[QStringLiteral( "title" )].toString(); } - QSharedPointer<RocketChatAttachment> attachmentObject( new RocketChatAttachment( url, type, - title ) ); + // QSharedPointer<RocketChatAttachment> attachmentObject( new RocketChatAttachment( url, type, + // title ) ); + auto attachmentObject = QSharedPointer<RocketChatAttachment>::create( url, type, title ); attachmentObject->setHeight( height ); attachmentObject->setWidth( width ); @@ -550,7 +560,8 @@ QList<QSharedPointer<RocketChatAttachment>> MessageService::processAttachments( QString author = attachmentObject["author_name"].toString(); text = text.replace( mReplyRegeEx, "" ); text = text.replace( mReplyReplyRegeEx, "" ); - QSharedPointer<RocketChatReplyMessage> reply( new RocketChatReplyMessage( text, author ) ); + // QSharedPointer<RocketChatReplyMessage> reply( new RocketChatReplyMessage( text, author ) ); + auto reply = QSharedPointer<RocketChatReplyMessage>::create( text, author ); attachmentsList.append( reply ); } } diff --git a/services/rocketchatchannelservice.cpp b/services/rocketchatchannelservice.cpp index f7e795d..53fd3a5 100755 --- a/services/rocketchatchannelservice.cpp +++ b/services/rocketchatchannelservice.cpp @@ -53,7 +53,8 @@ QSharedPointer<RocketChatChannel> RocketChatChannelService::createChannelObject( QSharedPointer<RocketChatChannel> RocketChatChannelService::createChannelObject( const QString &pRoomId, const QString &pName, const QString &pType, const QString &pUsername ) { - QSharedPointer<RocketChatChannel> ptr( new RocketChatChannel( mServer, mMessageService, pRoomId, pName, pType ) ); + // QSharedPointer<RocketChatChannel> ptr( new RocketChatChannel( mServer, mMessageService, pRoomId, pName, pType ) ); + auto ptr = QSharedPointer<RocketChatChannel>::create( mServer, mMessageService, pRoomId, pName, pType ); ptr->setUsername( pUsername ); if ( Q_LIKELY( mChannels ) ) { @@ -232,11 +233,20 @@ void RocketChatChannelService::loadJoinedChannelsFromServer( void ) emit channelsLoaded( channelsParsed, true ); } }; - QSharedPointer<DDPRequest> subscriptions( new DDPMethodRequest( "subscriptions/get", {}, [ = ]( QJsonObject pResponse, MeteorDDP * pDdpApi ) { + /*QSharedPointer<DDPRequest> subscriptions( new DDPMethodRequest( "subscriptions/get", {}, [ = ]( QJsonObject pResponse, MeteorDDP * pDdpApi ) { subscriptionSuccess( pResponse, pDdpApi ); QSharedPointer<DDPRequest> rooms( new DDPMethodRequest( "rooms/get", {}, roomsSuccess ) ); mServer->sendDdprequest( rooms ); - } ) ); + } ) );*/ + auto subscriptionsSuccess = [ = ]( QJsonObject pResponse, MeteorDDP * pDdpApi ) { + subscriptionSuccess( pResponse, pDdpApi ); + //QSharedPointer<DDPRequest> rooms( new DDPMethodRequest( "rooms/get", {}, roomsSuccess ) ); + QJsonArray test; + auto rooms = QSharedPointer<DDPMethodRequest>::create( "rooms/get", test, roomsSuccess ); + mServer->sendDdprequest( rooms ); + } ; + QJsonArray test; + auto subscriptions = QSharedPointer<DDPMethodRequest>::create( QStringLiteral( "subscriptions/get" ), test, subscriptionsSuccess ); mServer->sendDdprequest( subscriptions ); } @@ -267,7 +277,7 @@ void RocketChatChannelService::loadJoinedChannelsFromDb() if ( !user.isNull() ) { channelPointer->setChatPartner( user ); } else { - auto newUser = QSharedPointer<RocketChatUser>( new RocketChatUser( channelPointer->getChatPartnerId() ) ); + auto newUser = QSharedPointer<RocketChatUser>::create( channelPointer->getChatPartnerId() ); newUser->setUserName( roomHash["username"].toString() ); channelPointer->setChatPartner( newUser ); QMetaObject::invokeMethod( users, "addUser", Q_ARG( User, newUser ) ); @@ -311,7 +321,8 @@ void RocketChatChannelService::loadUsersOfChannel( const QSharedPointer<RocketCh if ( !pChannel.isNull() ) { QString channelId = pChannel->getRoomId(); QJsonArray params = {channelId, true}; - QSharedPointer<DDPMethodRequest> request( new DDPMethodRequest( "getUsersOfRoom", params ) ); + //QSharedPointer<DDPMethodRequest> request( new DDPMethodRequest( "getUsersOfRoom", params ) ); + auto request = QSharedPointer<DDPMethodRequest>::create( "getUsersOfRoom", params ); DdpCallback success = [ = ]( QJsonObject data, MeteorDDP * ddp ) { Q_UNUSED( ddp ); @@ -350,7 +361,7 @@ void RocketChatChannelService::loadUsersOfChannel( const QSharedPointer<RocketCh name = userObject["name"].toString(); } - QSharedPointer<RocketChatUser> user; + auto user = QSharedPointer<RocketChatUser>( nullptr ); auto oldUser = userModel->getUserById( userId ); @@ -362,7 +373,8 @@ void RocketChatChannelService::loadUsersOfChannel( const QSharedPointer<RocketCh user = oldUser; } else { - QSharedPointer<RocketChatUser> newUser( new RocketChatUser( userId ) ); + // QSharedPointer<RocketChatUser> newUser( new RocketChatUser( userId ) ); + auto newUser = QSharedPointer<RocketChatUser>::create( userId ); newUser->setName( name ); newUser->setUserName( username ); newUser->setStatus( status ); @@ -378,7 +390,8 @@ void RocketChatChannelService::loadUsersOfChannel( const QSharedPointer<RocketCh } else if ( current.type() == QJsonValue::String ) { //TODO: still relevant? QString name = current.toString(); - QSharedPointer<RocketChatUser> user( new RocketChatUser( name ) ); + //QSharedPointer<RocketChatUser> user( new RocketChatUser( name ) ); + auto user = QSharedPointer<RocketChatUser>::create( name ); userList.append( user ); } } @@ -402,7 +415,8 @@ void RocketChatChannelService::subscribeChannel( const QSharedPointer<RocketChat void RocketChatChannelService::subscribeChannel( const QString &pChannel ) { - QSharedPointer<RocketChatSubscribeChannelRequest> subscription( new RocketChatSubscribeChannelRequest( pChannel ) ); + //QSharedPointer<RocketChatSubscribeChannelRequest> subscription( new RocketChatSubscribeChannelRequest( pChannel ) ); + auto subscription = QSharedPointer<RocketChatSubscribeChannelRequest>::create( pChannel ); mServer->sendDdprequest( subscription ); } @@ -457,10 +471,12 @@ void RocketChatChannelService::leaveChannel( const QString &pId ) { //TODO: handle response, as soon as RC is fixed to do so if ( mChannels->contains( pId ) ) { - QSharedPointer<RocketChatLeaveRoomRequest> request( new RocketChatLeaveRoomRequest( pId ) ); + // QSharedPointer<RocketChatLeaveRoomRequest> request( new RocketChatLeaveRoomRequest( pId ) ); + auto request = QSharedPointer<RocketChatLeaveRoomRequest>::create( pId ); auto ddp = getDdp(); ddp->sendRequest( request ); - QSharedPointer<RocketChatHideRoomRequest> request2( new RocketChatHideRoomRequest( pId ) ); + //QSharedPointer<RocketChatHideRoomRequest> request2( new RocketChatHideRoomRequest( pId ) ); + auto request2 = QSharedPointer<RocketChatHideRoomRequest>::create( pId ); getDdp()->sendRequest( request2 ); deleteChannel( pId ); } @@ -479,7 +495,8 @@ void RocketChatChannelService::deleteChannel( const QString &pId ) void RocketChatChannelService::hideRoom( const QString &pId ) { - QSharedPointer<RocketChatHideRoomRequest> request( new RocketChatHideRoomRequest( pId ) ); + //QSharedPointer<RocketChatHideRoomRequest> request( new RocketChatHideRoomRequest( pId ) ); + auto request = QSharedPointer<RocketChatHideRoomRequest>::create( pId ); mDdp->sendRequest( request ); deleteChannel( pId ); } @@ -487,16 +504,17 @@ void RocketChatChannelService::hideRoom( const QString &pId ) void RocketChatChannelService::reportContent( const QString &pMessageId, const QString &pAuthorId ) { QJsonArray params = {QStringLiteral( "abuse" )}; - QSharedPointer<DDPMethodRequest> request( new DDPMethodRequest( QStringLiteral( "createDirectMessage" ), params ) ); + //QSharedPointer<DDPMethodRequest> request( new DDPMethodRequest( QStringLiteral( "createDirectMessage" ), params ) ); + auto request = QSharedPointer<DDPMethodRequest>::create( QStringLiteral( "createDirectMessage" ), params ); DdpCallback success = [ = ]( QJsonObject pResponse, MeteorDDP * pDdp ) { if ( Q_LIKELY( pResponse.contains( QStringLiteral( "result" ) ) ) ) { QJsonObject result = pResponse[QStringLiteral( "result" )].toObject(); if ( Q_LIKELY( result.contains( QStringLiteral( "rid" ) ) ) ) { QString rid = result[QStringLiteral( "rid" )].toString(); - QSharedPointer<DDPSubscriptionRequest> subRoom( new DDPSubscriptionRequest( QStringLiteral( "room" ), {"d" + QStringLiteral( "abuse" )} ) ); - QSharedPointer<RocketChatSubscribeChannelRequest> subMessages( new RocketChatSubscribeChannelRequest( rid ) ); - QSharedPointer<RocketChatChannel> channel = createChannelObject( rid, QStringLiteral( "abuse" ), "d" ); + auto subRoom = QSharedPointer<DDPSubscriptionRequest>::create( QStringLiteral( "room" ), QJsonArray( {"d" + QStringLiteral( "abuse" )} ) ); + auto subMessages = QSharedPointer<RocketChatSubscribeChannelRequest>::create( rid ); + auto channel = createChannelObject( rid, QStringLiteral( "abuse" ), "d" ); if ( !channel.isNull() ) { @@ -505,7 +523,8 @@ void RocketChatChannelService::reportContent( const QString &pMessageId, const Q pDdp->sendRequest( subMessages ); emit directChannelReady( rid, "d" ); QString message = QStringLiteral( "Report message with id:" ) + pMessageId + QStringLiteral( " from user with id:" ) + pAuthorId; - QSharedPointer<RocketChatMessage> reportMessage( new RocketChatMessage( rid, message ) ); + // QSharedPointer<RocketChatMessage> reportMessage( new RocketChatMessage( rid, message ) ); + auto reportMessage = QSharedPointer<RocketChatMessage>::create( std::move( rid ), std::move( message ) ); mMessageService->sendMessage( reportMessage ); } } @@ -540,7 +559,8 @@ void RocketChatChannelService::searchRoom( const QString &pTerm, const QString & QString name = roomObj["name"].toString(); QString id = roomObj["_id"].toString(); QString type = roomObj["t"].toString(); - QSharedPointer<RocketChatChannel> ptr( new RocketChatChannel( mServer, mMessageService, id, name, type ) ); + // QSharedPointer<RocketChatChannel> ptr( new RocketChatChannel( mServer, mMessageService, id, name, type ) ); + auto ptr = QSharedPointer<RocketChatChannel>::create( mServer, mMessageService, id, name, type ); channelList.append( ptr ); ids[id] = true; names[name] = true; @@ -561,7 +581,9 @@ void RocketChatChannelService::searchRoom( const QString &pTerm, const QString & QString id = roomObj["_id"].toString(); QString type = "d"; QString username = roomObj["username"].toString(); - QSharedPointer<RocketChatChannel> ptr( new RocketChatChannel( mServer, mMessageService, id, name, type ) ); + // QSharedPointer<RocketChatChannel> ptr( new RocketChatChannel( mServer, mMessageService, id, name, type ) ); + auto ptr = QSharedPointer<RocketChatChannel>::create( mServer, mMessageService, id, name, type ); + ptr->setUsername( username ); channelList.append( ptr ); ids[id] = true; @@ -581,7 +603,8 @@ void RocketChatChannelService::searchRoom( const QString &pTerm, const QString & } }; - QSharedPointer<RestSpotlightRequest> request( new RestSpotlightRequest( pTerm, "" ) ); + //QSharedPointer<RestSpotlightRequest> request( new RestSpotlightRequest( pTerm, "" ) ); + auto request = QSharedPointer<RestSpotlightRequest>::create( pTerm, "" ); request->setSuccess( success ); mServer->sendApiRequest( request ); @@ -622,8 +645,10 @@ void RocketChatChannelService::openPrivateChannelWith( const QString &pUsername QString rid = result[QStringLiteral( "rid" )].toString(); QSharedPointer<RocketChatChannel> channel; - QSharedPointer<DDPSubscriptionRequest> subRoom( new DDPSubscriptionRequest( QStringLiteral( "room" ), {"d" + pUsername} ) ); - QSharedPointer<RocketChatSubscribeChannelRequest> subMessages( new RocketChatSubscribeChannelRequest( rid ) ); + //QSharedPointer<DDPSubscriptionRequest> subRoom( new DDPSubscriptionRequest( QStringLiteral( "room" ), {"d" + pUsername} ) ); + auto subRoom = QSharedPointer<DDPSubscriptionRequest>::create( QStringLiteral( "room" ), QJsonArray( {"d" + pUsername} ) ); + //QSharedPointer<RocketChatSubscribeChannelRequest> subMessages( new RocketChatSubscribeChannelRequest( rid ) ); + auto subMessages = QSharedPointer<RocketChatSubscribeChannelRequest>::create( rid ); //TODO: fix if ( !mChannels->contains( rid ) ) { @@ -646,7 +671,8 @@ void RocketChatChannelService::openPrivateChannelWith( const QString &pUsername } } }; - QSharedPointer<RocketChatGetRoomByNameAndType> detailsRequest( new RocketChatGetRoomByNameAndType( pUsername, "d" ) ); + //QSharedPointer<RocketChatGetRoomByNameAndType> detailsRequest( new RocketChatGetRoomByNameAndType( pUsername, "d" ) ); + auto detailsRequest = QSharedPointer<RocketChatGetRoomByNameAndType>::create( pUsername, "d" ); detailsRequest->setSuccess( success ); mServer->sendDdprequest( detailsRequest ); } else { diff --git a/utils.cpp b/utils.cpp index 3b3c4c3..a513878 100755 --- a/utils.cpp +++ b/utils.cpp @@ -82,7 +82,7 @@ QString Utils::linkiFy( const QString &pText ) quotes["›"] = "‹"; - std::function<QString( QString text )> parse = [&]( QString pText ) { + std::function<QString( QString text )> parse = [&]( const QString & pText ) { QString html; html.reserve( 300 ); QVector<QString> parts; -- GitLab